dockerfile
文件名
Dockerfile
参数
-
FROM, 指定基础镜像
FROM ubuntu:14.04 -
LABEL,描述信息
maintainer 维护者
descripe 描述 -
EXPOSE,暴露8888端口
EXPOSE 8888 -
RUN 执行命令并创建新的image layer,(构建image时用来执行命令)RUN shell命令 尽量多个命令合并为一 这样可以少创建image的layer。
RUN apt-get install -y mysql-server="${MYSOL_VERSION}"
&& rm -rf /var/lib/apt/list/* #引用常量
RUN apt-get install -y vim -
WORKDIR /test 类似设置家目录 如果没有会自动创建test目录
WORKDIR /test -
ADD 和 COPY,复制host文件或文件夹到docker镜像指定目录
ADD hello /
COPY hello /
ADD test.tar.gz / 添加到根目录并解压缩
COPY test.tar.gz / 添加到根目录 -
ENV 设置环境变量或常量
ENV MYSOL_VERSION 5.6
RUN apt-get install -y mysql-server="${MYSOL_VERSION}"
&& rm -rf /var/lib/apt/list/* #引用常量 -
VOLUME
-
CMD
设置容器启动后默认执行的命令和参数。
如果docker run指定了其他命令,CMD命令被忽略。
如果定义了多个CMD,只有最后一个会执行。
CMD echo “hello docker”
CMD ["/bin/echo", “hello docker”] -
ENTRYPOINT
设置容器启动时运行的命令
不会被忽略,一定会执行
ENTRYPOINT echo “hello docker”
ENTRYPOINT ["/bin/echo", “hello docker”]
构建image命令 ( 注意点代表Dockerfile文件的位置为当前目录)
docker build -t 自定义镜像名 .