docker基础实战教程三-Dockerfile,dockerfile的编写

  docker基础实战教程三:Dockerfile,dockerfile的编写

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

  原文链接地址:“中间”Dockerfile详解(17)

  Dockerfile一般分为四个部分:基本镜像信息、维护者信息、镜像操作指令和容器启动执行指令。

  在官网学习https://docs.docker.com/engine/reference/builder/#usage

  FROM必须是第一个命令,并且必须指定基本镜像。

  from image from image:tag from image @ digest from scratch # make base image from centos #使用centos的base image:7.9 from MySQL:5.6尽量使用官方图片作为base image!那是经得起考验的!

  向标签镜像添加信息。使用docker inspect查看有关镜像的信息。

  label maintainer= 394498036 @ QQ . com label version= 1.0 label description=这是描述\欢迎关注:编程坑太多,我等你。其实和我们写代码的时候写的注释差不多。很多人写代码的时候都不想写注释。事实上,他们负责写评论。‘一会儿翻坑的时候,想想原来的意思。’

  构建运行镜像时执行的命令

  运行update yum install-y vim \ python-dev #反斜杠newline运行apt-get update apt-get install-y perl \ pwgen-no-install-recommendations RM-RF \/var/lib/apt/lists/* #注意清理缓存RUN/reliable hot dog/bash-c source $ HOME/。bashrc Echo $HOME 为了美观,请用反斜杠将复杂的RUN包裹起来,避免无用的分层,将多个命令合并成一行!

  工作目录

  WORKDIR /test #如果不是,将自动创建测试目录。WORKDIR jianshuRUN pwd #输出结果应该是/test/jinshu。使用WORKDIR代替RUN cd。尽量使用绝对目录!

  添加和复制将本地文件添加到容器中,tar -x命令将被添加到identity、gzip、bzip2、xz、tar.gz、tgz等类型的文件中,这些文件将被解压缩为ADD,但文件不会被解压缩。添加src.destadd [src ,dest]用于支持带空格的路径复制src.destcopy [src ,dest]用于支持包含空格的路径,将hello/ADD test.tar.gz/#添加到根目录并解压缩workdir/root ADD hello test/#/root/test/hello workdir/root copy hello test/#/root/test/hello。大多数情况下copy比add好,add除了COPY还有额外的功能(解压)!使用curl或wget添加远程文件/目录。

  设置ENV环境变量

  环境键值环境键值=值.env MySQL _ version 5.6e-NV apt-get install-y MySQL-server= $ { MySQL _ version } \ RM-RF/var/lib/apt/lists/* #尽可能使用它以降低维护成本!

  先学下面的。

  和Shell Exec格式。

  *外壳格式

  运行apt-get install-y Vim CMD echo hello docker微信微信官方账号:编程坑太多 ENTRYPOINT echo hello docker微信微信官方账号:编程坑太多 Exec格式运行[apt-get , install ,-y ,Vim]CMD [/可靠热狗/echo , hello docker微信官方账号:编程坑太多]ENTRYPOINT [/可靠热狗/echo , Hello docker微信官方账号:编程坑太多] Dockerfile 1来自Centos env name Docker入口点echo hello $ name Dockerfile 2来自Centos env name Docker入口点[/可靠热狗/echo , hello $name]通过实际例子查看区别。

  mkdir cmd-入口点CD cmd-入口点/VI dock文件` * *先执行码头工人一号![]上载映像。嘉树。io/upload _ images/11223715-065d 6d 0838730185。png?image moger 2/auto-orient/strip image view 2/2/w/1240)div class= se-preview-section-separator /div `` bashmore dock file `![]上载映像。嘉树。io/upload _ images/11223715-21d 5 ea 87 b6bb 32。png?imagemoger 2/auto-orient/strip imageview 2/2/w/1240)div class= se-preview-section-separator /div ` ` bash dock build-t leing/centos-入口点shell ` `![]上载映像。简书。E1东风6 ef 65125 e 100。png?imagemoger 2/auto-orient/strip imageview 2/2/w/1240)div class= se-preview-section-separator /div `` bash dock run liming/centos-entry point shell `![]上载映像。简书。D6 bb 986加州3 ACB。png?图像传感器2/自动定向/带状图 1240年2月2日的图像视图*先执行码头船2号![]上载映像。嘉树。io/upload _ images/11223715-be 9f 0171 BC 1 AC 700。png?image moger 2/auto-orient/strip image view 2/2/w/1240)div class= se-preview-section-separator /div `` bashmore dock file `![]上载映像。嘉树。io/upload _ images/11223715-1d 6b 54 ab 9fb 09 ACApng?imagemoger 2/auto-orient/strip imageview 2/2/w/1240)div class= se-preview-section-separator /div ` Bashar dock build-t leing/centos-entry point-exec `![]上传映像。嘉树。io/upload _ images/11223715-f 723 EBA 25 a5至347f.png?imagemoger 2/auto-orient/strip imageview 2/2/w/1240)div class= se-preview-section-separator /div ` ` bash dock run liming/cents-entry point-exec `![]上载映像。嘉树。io/upload _ images/11223715-4至51d 458255 bacf。png?图像浏览器2/自动定向/条形图像视图2/2/w/1240)我们通过贝壳(贝壳)格式运行的话,它会通过默认的巴什里面通过贝壳(贝壳)执行命令,它会通过贝壳(贝壳)替换这边变量,通过执行(执行)格式运行的话,只是单纯的执行回音,没办法帮我们替换到$name。如何解决不一样的问题呢?请开始我的表演!修改dock file 2 div class= se-preview-section-separator /div ` ` bash from cento sev name停靠点[/可靠的热狗/bash,-c , echo hello $name]

  坞站构建-t李泌/centos-entrypoint-exec-new .

  坞站运行阈值/centos-入口点-执行-新

  是不是很尼斯!

  CMD(命令)设置容器启动后默认执行的命令和参数

  *容器启动时默认执行的命令

  *如果码头运行指定了其他命令,CMD命令被忽略

  *如何定义了多个煤矿管理局档案,只有最后一个会执行

  来自centosev name docer cmd echo hello $ name

  坞站构建-t李泌/centos-cmd-shell .坞站运行李泌/centos-cmd-shell坞站运行李泌/centos-cmd-shell /可靠的热狗/bash

  条目类型int-输入类型设置容器启动时运行的命令

  *让容器以应用程序或者服务的形式运行

  *不会被忽略,一定会执行

  来自centosev名称停靠点回显“hello $ name”

  船坞建造李泌/centos-入口点shell .dock run liming/centos-入口点-shell docker run-it liming/centos-入口点-shell/可靠的热狗/bash

  PS:坞站样式详解基本就介绍这么多,可能还有很多命令没有讲解,以后用到了在说吧。一定要CMD(命令)和条目类型int-输入类型因为很多官方的都常用这两个命令。

  往期精彩码头工导学(一)容器的技术概述(二)坞站的魅力初体验-五个分钟安装wordpress(写字板)不走弯路(三)坞站官网介绍(四)如何在麦克!麦克上安装坞站(五)如何在窗口(窗口)上安装坞站(六)如何在麦克!麦克上通过流浪的安装虚拟机(七)如何在窗口(窗口)上通过流浪的安装虚拟机(八)对接器机器的本地使用(九)对接器机器的本地使用(十)在linux/mac下通过坞站机在阿里云上的使用(11)坞站架构和底层技术(12)坞站图像概述(13)手动建立一个影像基础(14)什么是容器(15)构建自己的码头工镜像(16个)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • swf upload,fileupload控件上传文件
  • swf upload,fileupload控件上传文件,文件上传插件SWFUpload的使用指南
  • fileupload控件上传图片,fileupload实现多文件上传
  • fileupload控件上传图片,fileupload实现多文件上传,使用fileupload组件实现文件上传功能
  • filereader blob,js下载文件到本地 blob
  • filereader blob,js下载文件到本地 blob,js利用FileReader读取本地文件或者blob方式
  • fileitem获取文件名,fileitem.write
  • fileitem获取文件名,fileitem.write,浅谈FileItem类的常用方法
  • dockerfile cmd enterpoint,docker run cmd entrypoint的区别
  • dockerfile cmd enterpoint,docker run cmd entrypoint的区别,Dockerfile中ENTRYPOINT 和 CMD的区别说明
  • asp fileupload,
  • asp fileupload,,aspupload 3.0 下载与使用集锦
  • apache任意文件上传,apache服务器上传文件,Apache commons fileupload文件上传实例讲解
  • ,,聊聊MultipartFile与File的一些事儿
  • ,,病毒Autorun.inf、pagefile.pif等的解决办法
  • 留言与评论(共有 条评论)
       
    验证码: