一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令如RUN和容器启动时执行指令如CMD。
详细文档https://blog.csdn.net/wo18237095579/article/details/80540571
1. FROM
格式为FROM <image> 或 FROM <image>:<tag> //这里image是指用官方的镜像作为你的镜像基础
第一条必须是From指令
Eg: FROM java:8-jre
2. MAINTAINER
格式为MAINTAINER <name>,指定维护者信息
3. RUN
格式为RUN <command> 或 RUN ["executable", "param1", "param2"]
每条RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像
4. ADD
格式为ADD <源路径> <目标路径>。
该命令将复制指定的<src> 到容器中的 <dest>。其中<src> 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压为目录)。如果《dest》不存在会创建目录
Eg: ADD ./jar/pig-config.jar /app/
5. VOLUME
格式为VOLUME ["/data"]。
创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
6. EXPOSE
格式为EXPOSE <port> [<port>...]。
告诉Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过 -P,Docker 主机会自动分配一个端口转发到指定的端口。
7. CMD
支持三种格式:
CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;
]CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;
CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;
指定启动容器时执行的命令,每个Dockerfile 只能有一条CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。
Eg: CMD ["java", "-Xmx200m", "-jar", "/app/pig-config.jar"]
8. ENV
格式为ENV <key> <value>。指定一个环境变量,会被后续RUN 指令使用,并在容器运行时保持。
网友评论