Dockerfile中指令详解

Dockerfile是一个文本格式的配置文件,用于快速创建自定义的镜像。

 

一、基础结构

Dockerfile有一行行命令语句组成,并支持以# 开头的注释行

Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行的指令

例:

#第一行必须制定基于的基础镜像
FROM  ubuntu
#维护者信息
MAINTAINER   docker_user [email protected]
#镜像操作
RUN  apt-get update && apt-get install -y nginx
#容器启动时执行
CMD  /usr/sbin/nginx

 

二、Dockerfile中的指令

   1.FROM

     格式:

FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>

作用:制定基础镜像

扫描二维码关注公众号,回复: 1828115 查看本文章

 
2.MAINTAIN

 格式:

MAINTAINER <name>

作用: 指定维护者信息

3.RUN

  格式:

   RUN <command> (由shell启动,Linux默认为`/bin/sh -c`,Windows默认为`cmd /S /C`)
   RUN ["executable", "param1", "param2"]  (运行可执行文件)

作用: 构建镜像时执行的命令

4.CMD

格式:

CMD ["executable","param1","param2"] (执行可执行文件,优先)
CMD ["param1","param2"] (设置了ENTRYPOINT,则直接调用ENTRYPOINT添加参数)
CMD command param1 param2 (执行shell内部命令)

作用:

指定启动容器时执行的命令,每个Dockerfile只能有一个CMD命令。如果有多个CMD命令,则只执行最后一条

 

 

5.EXPOSE

格式:

EXPOSE <port> [<port>…]

作用:

告诉Docker容器需要暴露的端口号,供互联系统使用

 

6.ENV

 格式:

ENV <key> <value>
ENV <key>=<value> ...

作用:

设置环境变量,在容器运行时保持

例:

RUN set -ex && apt-get update && apt-get install -y iputils-ping  
ENV PATH /usr/local/bin:$PATH  
ENV LANG C.UTF-8  
ENV TERM xterm  
ENV PYTHON_VERSION 3.5.3  
ENV name1=ping name2=on_ip  
CMD $name1 $name2 


7.ADD

格式:

ADD <src>  <dest>

作用:

该命令将复制指定的<src>到容器的<dest>,其中<src>可以是Dockerfile所在目录的一个相对路径(文件或目录)

 

8.COPY

格式:

COPY <src> <dest>

作用:

复制本地主机的<src>(Dockerfile所在目录的相对路径的文件或目录)到容器的<dest>。目标目录不存在时,会自动创建,与ADD不同的是不会解压压缩文件

 

9.VOLUMN

格式:

VOLUME ["/data"]

作用:

用于指定持久化目录,在容器启动时用-v传递参数,例如-v ~/opt/data/mysql:/var/lib/mysql将本机的~/opt/data/mysql和容器内的/var/lib/mysql做持久化关联

容器启动时会加载,容器关闭后会回写。

 

10.ENTRYPOINT

格式:

ENTRYPOINT ["executable", "param1", "param2"] (可执行文件, 优先)
ENTRYPOINT command param1 param2 (shell内部命令)

作用:

配置容器,使其可执行化。配合CMD可省去"application",只使用参数。

 例:

FROM ubuntu
ENTRYPOINT ["top", "-b"]
CMD ["-c"]

当启动容器后,你将直接看到相当于运行了top -b -c

要进一步查看,你可以直接使用命令docker exec -it test ps aux

相当于使用了docker exec top -b -it test ps aux

 

11. USER

格式:

USER daemon

作用:
  指定运行容器时的用户名或uid,后续的RUN、CMD和ENTRYPOINT也会使用指定用户

 

12. WORKDIR

格式:

WORKDIR /path/to/workdir

作用:

配置工作目录

  

13.ONBUILD

格式:

ONBUILD  [INSTRUCTION]

作用:

配置当所创建的镜像作为其他新创建镜像的基础镜像时,所执行的操作指令。

 

14. ARG

格式:

ARG  parameter_name

作用:

由外部启动时必须传入的参数,在容器启动时用 --build-arg 传递参数

例:

容器启动时传参: --build-arg CONT_IMG_VER=v2.0.1
FROM ubuntu
ARG CONT_IMG_VER


另:docker入门,进阶和源码学习数据pdf(有需要的可留下邮箱)

 https://download.csdn.net/download/skh2015java/10246320

 

 

猜你喜欢

转载自blog.csdn.net/skh2015java/article/details/80285458