dockerfile指令解析

274人浏览 / 0人评论

Dockerfile 是一个文本文件,其内包含了一条条的指令 (Instruction),用于构建镜像。

指令集 描述
FROM 指定基础镜像,必须为第一个命令
MAINTAINER 维护者信息
RUN 构建镜像 docker build 时执行的命令
ADD 将本地文件添加到容器中,tar 类型文件会自动解压
COPY 功能类似 ADD,但是是不会自动解压文件,也不能访问网络资源
CMD 在 docker run 时会执行的命令,如果存在多个则仅最后一个生效,例如一个镜像的 dockerfile 的结尾是 “CMD ["/bin/bash"] ”,那么进入容器可以使用 docker exec -it imageName 或 docker exec -it imageName /bin/bash,后者是在 “ CMD ["/bin/bash"] ” 的指令下面多加了一个 “ CMD ["/bin/bash"] ”,根据 CMD 的特性,存在多个时,只让最后一个 CMD 生效,因此不影响
ENTRYPOINT 可执行化
LABEL 用于为镜像添加元数据
ENV 设置环境变量
EXPOSE 指定于外界交互的端口
VOLUME 用于指定持久化目录
WORKDIR 工作目录
ARG 用于指定传递给构建运行时的变量
ONBUILD 用于设置镜像触发器

例如:

FROM harbor.chinauos.com/ustack-manager/ustack-openjdk-base-x86

MAINTAINER xiangyuanhong@163.com
USER root
LABEL kolla_version=0.0.1
LABEL app.maintainer=ustack-api
LABEL version="2.0" description="ustack-api"
VOLUME /tmp
EXPOSE 8886
RUN mkdir -p /var/lib/kolla/config_files
ADD target/ustack-api.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=/var/lib/kolla/config_files/"]

全部评论