dockerfile详解
Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速构建自定义的镜像。
dockerfile基本结构
dockerfile一般分为四部分:
- 基础镜像信息
- 维护者信息
- 镜像操作指令
- 容器启动时执行指令
dockerfile基本命令
FROM命令,选择一个基础镜像,如果有多个,可以使用多个from
1FROM <image> 或 FROM <image>:<tag>MAINTAINER命令,说明作者信息
1MAINTAINER <name> <email>RUN命令,RUN指令将在当前镜像基础上执行指定命令
1 2RUN <command> RUN ["executable","param1","param2"]cMD命令,指定启动容器时执行的命令,每个Dockerfile只能有一条CMD命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器的时候指定了运行的命令,则会覆盖掉CMD指定的命令
1 2 3 4支持三种格式: CMD ["executable","param1","param2"]使用exec执行,推荐方式。 CMD command param1 prarm2 在/bin/sh中执行,提供给需要交互的应用 CMD ["prarm1","param2"]提供给ENTRYPOINT的默认参数EXPOSE命令,暴露容器端口
1EXPOSE <port> <port> ...ENV命令,指定环境变量
1ENV <key> <value>ADD命令,复制宿主机文件或目录到容器中,其中src可以是Dockerfile所在目录的一个相对路径(文件或目录),也可以是一个URL,还可以是一个tar文件
1ADD <src> <dest>COPY命令,复制本地主机的src为容器中的dest,目标路径不存在时,会自动创建
1COPY <src> <dest>ENTRYPOINT命令,配置容器启动后执行的命令,并且不可被docker run 提供的参数覆盖。每个Dockerfile中只能有一个ENTRYPOINT,当指定多个ENTRYPOINT时,只有最后一个生效。
1 2ENTRYPOINT ["executable","param1","param2"] ENTRYPOING command param1 param2 (shell中执行)VOLUME命令,创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
1VOLUME ["/data"]USER命令,指定运行容器时的用户名或UID,后续的RUN也会使用指定用户
1USER daemonWORKDIR命令,为后续的RUN、CMD、ENTRYPOINT指令配置工作目录,可以使用多个WORKDIR指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。
1WORKDIR /path/to/workdirONBUILD命令,配置当所创建的镜像作为其他新创建镜像的基础镜像时,所执行的操作指令
1ONBUILD [INSTRUCTION]
Dockerfile构建java环境镜像
创建Dockerfile文件
| |
构建镜像
| |
运行容器
| |
构建noname镜像
使用本地jdk创建,首先将jdk-8u144-linux-x64.tar.gz,放到Dockerfile同一个文件夹下
| |
本文深入解析Dockerfile的基本结构与命令,包括从基础镜像构建、环境变量设置到容器启动指令的详细说明。通过具体示例,如Java环境镜像的创建,展示如何利用Dockerfile自动化构建定制化镜像。
2725

被折叠的 条评论
为什么被折叠?



