本文共 1508 字,大约阅读时间需要 5 分钟。
Dockerfile 是一个文本格式的配置文件,用户可以通过它快速创建自定义镜像。以下是 Dockerfile 中的一些常用指令及其说明:
定义创建镜像过程中使用的变量。
用法:
ARG VERSION=2.2 指定所创建镜像的基础镜像。
用法:
FROM DEBIAN:${VERSION} 镜像作者或者电子邮箱。
用法:
MAINTAINER WangLK 生成的镜像添加元数据标签(键值对形式)。
用法:
LABEL VERSION="2.2"LABEL author="WangLK" 声明镜像内服务监听的端口。
用法:
EXPOSE 8808 指定运行容器时的用户或UID。
用法:
RUN groupadd 配置工作目录。
用法:
WORKDIR /a 指定环境变量。
用法:
ENV APP_VERSION=l.0.0ENV APP_HOME=/usr/local/appENV PATH $PATH:/usr/local/bin 运行指定命令。
用法:
RUN mkdir -p /a/b 启动容器时指定默认执行的命令。
用法:
CMD ["–spring.profiles.active=dev"] 添加内容到镜像(压缩文件会自动解压)。
用法:
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java 复制内容到镜像。
用法:
COPY src /usr/local/src 通过以下命令可以创建镜像:
docker build -t tag:1.1.1 ./
-t:指定镜像标签。. /:表示当前目录(Dockerfile 所在目录)。需要注意的是,docker build命令可以接受一个 –f 选项,用于指定上下文路径:
docker build -f /tmp/docke_builder/ # 可以指定上下文路径
在创建镜像时,Docker 会将指定上下文路径中的所有数据发送给 Docker 客户端。因此,为了避免镜像构建过程过于缓慢,建议忽略一些不需要的文件或目录。
*:表示任意多个字符。?:表示单个字符。!:表示不匹配。以下是一个示例 .dockerignore 文件:
*.log*.txt!*.java
以下是一个使用 Dockerfile 构建 JDK 1.8 镜像的示例:
FROM centos:7MAINTAINER WangLKWORKDIR /usrRUN mkdir /usr/local/javaADD jdk-8u171-linux-x64.tar.gz /usr/local/javaENV JAVA_HOME /usr/local/java/jdk1.8.0_171ENV JRE_HOME $JAVA_HOME/jreENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATHENV PATH $JAVA_HOME/bin:$PATH
通过以上 Dockerfile,可以快速构建一个包含 JDK 1.8 的镜像。
转载地址:http://bbeu.baihongyu.com/