1.基本结构
基础镜像信息,维护者信息,镜像操作指令和容器启动时执行指令
2.指令说明
(1)FROM:指定所创建镜像的基础镜像,如果本地不存在,则默认会去docker hub下载
(2)MAINTAINER:指定维护者信息
(3)RUN:运行指定命令
格式:RUN command 或RUN ["execuable","param1","param2"]
(4)CMD:用来指定启动容器时默认执行的命令
格式:
《1》CMD ["executable","param1","param2"] (推荐用)
《2》CMD command param1 param2
《3》CMD ["param1","param2"]:提供给ENTRYPOINT的默认参数
如果用户启动容器时手动指定了运行命令作为run的参数,则会覆盖掉CMD指定的命令
(5)LABEL:用来指定生成镜像的元数据标签信息
格式:
LABEL key=value key=value ...
(6)EXPOSE:申明镜像内服务所监听的端口
格式:EXPOSE port ....
该指令只是起到申明作用,并不会自动完成端口的映射,在启动容器时需使用-p
(7)ENV:指定环境变量
格式:
ENV key value或ENV key=value
docker run --env key=value可覆盖指定环境变量
(8)ADD:复制指定路径下的内容到容器中的指定路径下
格式:
ADD src dest
(9)COPY:复制本地主机指定路径下的内容到镜像中的指定路径,目标路径不存在时,自动创建
格式:
COPY src dest
(10)ENTRYPOINT:指定镜像的默认入口命令
格式:
ENTRYPOINT ["executable","param1","param2"]
ENTRYPOINT command param1 param2
可被--entrypoint参数覆盖
(11)VOLUME:创建一个数据卷挂载点
格式:
VOLUME ["/data"]
(12)USER:指定运行容器时的用户名或UID
格式:
USER daemon
(13)WORKDIR:为后续的RUN,CMD,ENTRYPOINT指定配置工作目录
格式:
WORKDIR /path/to/workdir
(14)ARG:指定一些镜像内的参数,这些参数在执行docker build命令时才以--build-arg varname=value格式传入
格式:
ARG name[=default value]
可以用docker build --build-arg name=value指定参数
(15)ONBUILD:配置当所创建的镜像作为其他镜像的基础镜像时,所执行的创建操作指令
格式:
ONBUILD [INSRUCTTON]
(16)STOPSIGNAL:指定所创建镜像启动时的容器接收退出的信号值
(17)SHELL:指定其他命令使用shell时的默认shell类型
3.创建镜像
docker build [option] 内容路径