Dockerfile相关指令的的简要说明
2016-12-12 16:01
549 查看
Dockerfile中关键字的相关说明
Dockerfile中以#开头的行全为注释行FROM <image>:<tag> 指定基础镜像
MAINTAINER <name> 指定维护者信息
RUN <command> 或 RUN ["executable file", "parameter1", ...] 在当前镜像中执行指定命令,执行的结果会被镜像保存
CMD 用法类似于RUN,用于指定Docker容器启动时执行的命令。Dockerfile中只能有一个CMD,并且此CMD命令会被启动Docker容器时指定的参数覆盖
LABEL <key>=<value> <key>=<value> 为Docker镜像指定meta信息,同时会覆盖基础镜像中的meta信息
EXPOSE <port> <port> .... 指定暴露的端口号
ENV <key>=<value> 或者 ENV <key> <value> 指定镜像的环境变量,会被镜像保存下来
ADD <src> <des> 拷贝主机的文件或者目录到镜像中。此命令会自动解压tar文件
COPY <src> <des> 和ADD命令类似,但此命令不会自动解压tar文件
ENTRYPOINT <command> 或 ENTRYPOINT ["executable file", "parameter1", ...] 配置容器启动后启动的命令,类似CMD,但此命令不会被启动Docker容器时指定的参数覆盖
VOLUME ["/data/"] 指定一个可以从主机或者其他容器挂载的挂载点
USER username 指定后续操作所用的用户名
WORKDIR <dir path> 为后续操作指定工作目录
ONBUILD <command> 指定当此镜像作为基础镜像时指定的命令,会在FROM之后执行
目前用到的就这么多,还有一些其他的,待补充!
Dockerfile中的RUN、CMD和ENTRYPOINT什么区别?
RUN和后两者的区别是:RUN命令是在Dockerfile构建镜像的过程中执行的命令,最终会被提交到镜像中。ENTRYPOINT和CMD命令是在启动容器(run或者start)时执行的命令。CMD和ENTRYPOINT的区别:
CMD命令可以被启动Docker容器时指定的参数覆盖,而ENTRYPOINT命令可以将Docker容器启动时执行的参数当做自己的参数。例如Dockerfile中:
CMD ["echo"]
此时执行:
docker run container_name echo xianhu
输出 xianhu,原来Dockerfile中的echo命令被覆盖。但如果Dockerfile是:
ENTRYPOINT ["echo"]
此时执行:
docker run container_name echo xianhu
输出 echo xianhu,即容器启动时指定的参数被当做了ENTRYPOINT的参数。
换句话说:Dockerfile中如果没有ENTRYPOINT,则CMD为默认的执行命令,如果两者同时存在,则CMD为ENTRYPOINT的参数。
相关文章推荐
- 使用Dockerfile创建镜像各常用指令说明 - 知识林
- Docker -- dockerFile指令说明
- 【转帖】InternetOpen\InternetOpenUrl\InternetReadFile 等相关Win32 网络API 使用详细说明
- InternetOpen\InternetOpenUrl\InternetReadFile 等相关Win32 网络API 使用详细说明
- Dockerfile指令
- Dockerfile指令总结
- dockerfile_instructions(指令)
- InternetOpen/InternetOpenUrl/InternetReadFile 等相关Win32 网络API 使用详细说明
- Dockerfile指令总结
- Dockerfile文件说明
- core_cm4相关头文件简要说明
- 前端开发相关工具简要说明
- InternetOpen\InternetOpenUrl\InternetReadFile 等相关Win32 网络API 使用详细说明
- InternetOpen\InternetOpenUrl\InternetReadFile 等相关Win32 网络API 使用详细说明
- Windows下 Apache2.2 + PHP + phpMyAdmin + MySQL 配置简要相关说明
- Dockerfile指令总结
- 根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。
- InternetOpen\InternetOpenUrl\InternetReadFile 等相关Win32 网络API 使用详细说明
- InternetOpen/InternetOpenUrl/InternetReadFile 等相关Win32 网络API 使用详细说明
- Dockerfile说明