Dockerfile创建自定义镜像

2020-05-07  本文已影响0人  阿尼奥赛哟

一般的,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 指令使用,并在容器运行时保持

上一篇下一篇

猜你喜欢

热点阅读