FROM
FROM命令指定了基础镜像,比如FROM ubuntu
,则表示你的镜像的基本镜像来自ubuntu
MAINTAINER
maintainer意为维护者,用来标识维护者信息(作者)
RUN
格式为 RUN <command>
或`RUN [“executable”, “param1”, “param2”],命令较长时可以使用****换行
CMD
格式为
- CMD [“executable”, “param1”, “param2”]
- CMD command param1 param2(在/bin/sh中执行)
- CMD [“param1”, “param2”](提供给ENTRYPOINT的默认参数)
如果用户启动容器时指定了运行的指令,则会覆盖掉CMD的指令
EXPOSE
告诉Docker容器需要暴露的端口号,这样在启动时可以通过-P或-p来指定对应的端口映射
例:EXPOSE 20 8080
ENV
指定环境变量,会被后续的RUN指令使用,并在容器运行时保持
如ENV PG_VERSION 9.3.4
ADD
ADD <src> <dest>
该指令可以复制文件或目录到容器,<src>
可以是Dockerfile所在目录的相对路径,也可以是URL,也可以是tar(会自动解压)。
COPY
COPY <src> <dest>
复制本机的<src>
为容器的<dest>
,相比ADD,它不支持URL,自动解压。
ENTRYPOINT
入口点,格式为ENTRYPOINT [“executable”, “param1”, “param2”] 或ENTRYPOINT command param1 param2(sh)
入口点只能被配置一个,在容器启动时会自动被执行,和CMD相比,它的特点是不会被用户提供的命令覆盖
VOLUME
指定数据挂载,创建数据卷
格式为:
- VOLUME ["<路径1>", “<路径2>”…]
- VOLUME <路径>
USER
指定运行容器时的用户名或UID,后续的RUN也会使用指定用户,可以通过这种方式限制权力
WORKDIR
指定WORKDIR,方便后续的RUN指令执行,后续的相对路径依据与WORKDIR
ONBULID
当该镜像将来被用来作为其它镜像的基础镜像时所执行的操作指令(新的Dockerfile使用From thisImage)
如ONBULID ADD . /app/src
,ONBULID RUN echo "onbulid"
docker build命令依据Dockerfile创建镜像
docker build path,会自动搜索path下的Dockerfile,并将Dockerfile路径下所有的目录和文件发送到Docker服务端,由服务端来创建镜像
通过-t 可以指定生成的镜像的标签
使用.dockerignore 忽略路径下的目录和文件
每一行添加一条匹配模式,语法类似.gitignore
衡与墨 发布了129 篇原创文章 · 获赞 66 · 访问量 14万+ 私信 关注