「docker实战篇」python的docker-docker镜像的创建使用dockerfile(3
admin
2023-04-02 19:21:50
0

>>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
>>原文链接地址:「docker实战篇」python的docker-docker镜像的创建使用dockerfile(33)


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

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


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(3

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

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

实战编写Dockerfile

  • 创建目录,存放Dockerfile

mkdir newNginx
cd newNginx

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

  • 编写 Dockerfile

From nginx
RUN echo '

welcome to idig8.com study docker

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

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

  • 构建Dockerfile

docker build -t nginx:v2 .
docker images

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

  • 推送docker hub推送
    >登录docker hub

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

docker login

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

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

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

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

更改名称

docker tag nginx:v2 zhugeaming/nginx:v2

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

完成推送

docker push zhugeaming/nginx:v2

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

查看结果

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

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

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


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


相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...