热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

从上篇dockercommit学习可以了解到,镜像的定制其实每一层添加的配置和文件,如果把每一层的修

从上篇docker commit学习可以了解到,镜像的定制其实每一层添加的配置和文件,如果把每一层的修改配置,修改文件,都写入脚本,用这个脚本构建定制镜像,无法重复的问题,镜像构建透明性的问题,体积的问题都会解决。这个脚本就是Dockerfile。

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

Dockerfile

  • 什么是dockerfile

    一个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

  • 了解FROM

    FROM指定基础镜像,基础镜像是必须指定的。而FROM就是指定基础镜像,因此一个Dockerfile中From是必备的指令,并且必须是第一条指令。在dockerhub上有很多高质量的 docker 镜像,有可以直接拿来使用的基础镜像:nginx,tomcat,java,python,php,mongodb。搜寻最符合使用的的一个基础镜像。

  • 了解RUN

    RUN执行命令是用来执行命令行命令的。由于命令行的强大能力,RUN指令在定制镜像时最常用的指令之一。

shell 格式: RUN<命令>,就像直接在命令行中输入的命令一样
exec 格式: RUN["可执行文件","参数1","参数2"],这更像是函数调用中的格式
  • 不建议的写成下面这种Dockerfile

    > 之前说过Dockerfile每个指令都会创建一个层,下面这种写法就是创建了7层的镜像,这样做就完全是没有意义的,很多运行不需要的东西都被装到这个镜像里面去了,编译环境更新软件包,产生非常臃肿层非常多的镜像,不仅仅增加了构建部署的时间,也很容易出错,也是初学docker容易犯的错误,之前我也犯过。镜像的层数是有限制的,最大层不能超过127层。镜像是多层存储的,在加入一层就是,之前的层不会被修改。

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

正确的方式。一定要做到每一层是需要的东西,任何无关的东西都要被清理掉。这也是制作镜像容易犯的错误,之前安装的文件没有清理。

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

实战编写Dockerfile

  • 创建目录,存放Dockerfile
mkdir newNginx
cd newNginx

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

  • 编写 Dockerfile
From nginx
RUN echo '

welcome to idig8.com study docker

' > /usr/share/nginx/html/index.html

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

  • 构建Dockerfile
docker build -t nginx:v2 .
docker images

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

  • 推送docker hub推送

    >登录docker hub

#先配置dns 8.8.8.8
 vi /etc/resolv.conf

docker login

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

设置仓库地址,登录hub.docker.com

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

更改名称

docker tag nginx:v2 zhugeaming/nginx:v2

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

完成推送

docker push zhugeaming/nginx:v2

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

查看结果

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)

PS:其实在开发的时候,多任务的时候,只需要一个 python 3和mitmproxy的镜像环境,已经做好了,到时候直接用docker push zhugeaming/python3-appium,其实想学习docker其他内容可以看我之前写的其他文章。

百度未收录

>>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

>>原文链接地址:上一篇:

已是最新文章


以上所述就是小编给大家介绍的《「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 我们 的支持!


推荐阅读
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 本文介绍了Java编程语言的基础知识,包括其历史背景、主要特性以及如何安装和配置JDK。此外,还详细讲解了如何编写和运行第一个Java程序,并简要介绍了Eclipse集成开发环境的安装和使用。 ... [详细]
  • 本文详细介绍了如何使用JavaScript实现面部交换功能,包括基本原理和具体实现步骤。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 实现Nginx对ThinkPHP URL重写及PATHINFO支持的详细方法解析【PHP开发】
    在PHP后端开发中,实现Nginx对ThinkPHP的URL重写及PATHINFO支持是一项常见的需求。本文详细解析了经过多次尝试和研究,最终找到的一种有效配置方法,能够确保URL_MODERewrite功能正常运行,并提供稳定的服务。此外,文章还探讨了相关配置项的具体作用及其优化建议,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
author-avatar
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有