Dockerfile和docker-compose应用-创新互联

Dockerfile 介绍

Docker通过对于在Dockerfile中的一系列指令的顺序解析实现自动的image的构建。

创新互联建站主营荥阳网站建设的网络公司,主营网站建设方案,成都app软件开发公司,荥阳h5小程序设计搭建,荥阳网站营销推广欢迎荥阳等地区企业咨询

通过使用build命令,根据Dockerfile的描述来构建镜像。

Dockerfile指令

  只支持Docker自己定义的一套指令,不支持自定义

  大小写不敏感,但是建议全部使用大写

  根据Dockerfile的内容顺序执行

  • FROM指令

  FROM {base镜像}

  必须放在DOckerfile的第一行,表示从哪个baseimage开始构建

  • MAINTAINER

    MAINTAINER: xxx

    可选的,用来标识image作者的地方

  • RUN

  每一个RUN指令都会是在一个新的container里面运行,并提交为一个image作为下一个RUN的base

  一个Dockerfile中可以包含多个RUN,按定义顺序执行

  RUN支持两种运行方式:

    RUN 这个会当作/bin/sh -c “cmd” 运行

    RUN [“executable”,“arg1”,。。],Docker把他当作json的顺序来解析,因此必须使用双引号,而且executable需要是完整路径

  RUN 都是启动一个容器、执行命令、然后提交存储层文件变更。第一层 RUN command1 的执行仅仅是当前进程,一个内存上的变化而已,其结果不会造成任何文件。而到第二层的时候,启动的是一个全新的容器,跟第一层的容器更完全没关系,自然不可能继承前一层构建过程中的内存变化。而如果需要将两条命令或者多条命令联合起来执行需要加上&&。如:cd /usr/local/src && wget xxxxxxx

  • ADD & COPY

  当在源代码构建的方式下,可以通过ADD和COPY的方式,把host上的文件或者目录复制到image中

  ADD和COPY的源必须在context路径下

  当src为网络URL的情况下,ADD指令可以把它下载到dest的指定位置,这个在任何build的方式下都可以work

  ADD相对COPY还有一个多的功能,能够进行自动解压压缩包

  • ENV

  ENV key value

  用来设置环境变量,后续的RUN可以使用它所创建的环境变量

  当创建基于该镜像的container的时候,会自动拥有设置的环境变量

  • CMD

  CMD的作用是作为执行container时候的默认行为(容器默认的启动命令)

  当运行container的时候声明了command,则不再用image中的CMD默认所定义的命令

  一个Dockerfile中只能有一个有效的CMD,当定义多个CMD的时候,只有最后一个才会起作用

CMD定义的三种方式:

  CMD 这个会当作/bin/sh -c "cmd"来执行

  CMD ["executable","arg1",....]

  CMD ["arg1","arg2"],这个时候CMD作为ENTRYPOINT的参数

Dockerfile示例

示例1 :以最常用的tomcat为示例

1

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:Dockerfile和docker-compose应用-创新互联
当前路径:http://hbruida.cn/article/cohhdg.html