码迷,mamicode.com
首页 > 其他好文 > 详细

DockerFile解析(CentOS 7)

时间:2020-09-03 17:07:16      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:ngx   ted   pac   定义   center   之间   tools   映射   tor   

 

1. DorkerFile

DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。

 

2. 构建步骤

构建三步骤:

编写DockerFile文件

l docker build

l docker run

 

3. 指令

3.1. 常用指令

  1. FROM 功能为指定基础镜像,并且必须是第一条指令。如果不以任何镜像为基础,那么写法为:FROM scratch
  2. MAINTAINER 说明作者
  3. RUN 运行指定的命令
  4. ENV 设置环境变量
  5. WORKDIR 设置工作目录
  6. ADD 一个复制命令,把文件复制到镜像中
  7. COPY 复制指令
  8. CMD 容器启动时要运行的命令,可以多条,但是只有最后一条起效
  9. ENTRYPOINT 容器启动时的默认命令只能写一条
  10. LABEL 为镜像指定标签
  11. EXPOSE 记录服务可用的端口,但是并不创建和宿主机之间的映射
  12. VOLUME 实现挂载功能,将本地文件夹或者其他容器中文件夹挂在到当前容器中

 

3.2. 优化建议

  1. ADDVOLUME尽量放在dockerfile底部
  2. 多个RUN的时候可以通过&& \ 集合成一条指令,减少容器层数
  3. 能用COPY的地方就不要用RUN cp
  4. dockerfile当前目录最好不要放无关文件

 

4. 案例

4.1. 自定义镜像

4.1.1. 新建脚本

vi myCentOS.df

FROM centos

MAINTAINER gongxr

 

ENV MYPATH /usr/local

WORKDIR $MYPATH

 

RUN yum -y install vim

RUN yum -y install net-tools

 

EXPOSE 22 80

 

CMD echo "----success----"

CMD ["/bin/bash"]

 

4.1.2. 构建

docker build -f ./myCentOS.df -t mycentos:1.1 .

 

4.1.3. 运行

docker run -it --name mycentos -P  mycentos:1.1

 

4.1.4. 查看历史

docker history 24cfa63644dc  #镜像ID

docker history mycentos:1.1 --no-trunc  #完整显示

[root@localhost dockerFile]# docker history mycentos:1.1

IMAGE               CREATED              CREATED BY                                      SIZE                COMMENT

1a829f894153        About a minute ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B                 

d270ce700b5e        24 minutes ago       /bin/sh -c #(nop)  CMD ["/bin/sh" "-c" "ec...   0 B                 

556fea5422a4        24 minutes ago       /bin/sh -c #(nop)  EXPOSE 22/tcp 80/tcp         0 B                 

35cb1da810fe        24 minutes ago       /bin/sh -c yum -y install net-tools             22.9 MB             

897c2d62f01f        25 minutes ago       /bin/sh -c yum -y install vim                   57.3 MB             

b5932f89e3d0        26 minutes ago       /bin/sh -c #(nop) WORKDIR /usr/local            0 B                 

d5437421e4ec        26 minutes ago       /bin/sh -c #(nop)  ENV MYPATH=/usr/local        0 B                 

812bb1aa5cab        26 minutes ago       /bin/sh -c #(nop)  MAINTAINER gongxr            0 B                 

0d120b6ccaa8        2 weeks ago          /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B                 

<missing>           2 weeks ago          /bin/sh -c #(nop)  LABEL org.label-schema....   0 B                 

<missing>           2 weeks ago          /bin/sh -c #(nop) ADD file:538afc0c5c964ce...   215 MB

 

DockerFile解析(CentOS 7)

标签:ngx   ted   pac   定义   center   之间   tools   映射   tor   

原文地址:https://www.cnblogs.com/gongxr/p/13563152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!