Dockerfile 小记
作者:互联网
FROM openjdk:8-jdk-slim # 配置基础运行环境(镜像)
COPY (以Dockerfile所在目录为基础的)文件 容器中的目标地址 # 将主机文件复制到容器
ADD # 和 COPY 相似,但可以从 url 中进行拷贝
# 一般使用 COPY
# CMD
CMD ["java", "-jar", "demo.jar"] # 指定容器运行时的命令
ENTRYPOINT ["java", "-jar", "demo.jar"]
# ENTRYPOINT 和 CMD 类似
# 注:如果 Dockerfile 中这两个指令未指定,则该镜像继承自父镜像,如果父镜像也没有,则镜像无法构建
# 如果 CMD 和 ENTRYPOINT 均指定了
# 两者的关系:如果 ENTRYPOINT 不是 json 数组的形式,那么一切以 ENTRYPOINT 为准,CMD 等于无效
# 如果 ENTRYPOINT 是 json 数组的形式,同时 CMD 也是 json 数组的形式,那么将 ENTRYPOINT 和 CMD 前后拼接成一句 shell 来执行
EXPOSE # 指定当前的镜像暴露的端口
docker inspect 镜像名:标签
获取容器/镜像的元数据
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS说明:
-f :指定返回值的模板文件。
-s :显示总的文件大小。
--type :为指定类型返回JSON。
VOLUME /a/b 指定容器数据卷
ENV 指定容器的环境变量
e.g.
ENV A=10 # 或者 A 10 用空格
CMD echo $A
docker run -e 环境变量
docker run -e A=10
ARG 构建参数,只有在构建的时候才有效(构建 docker build)
和 ENV 不同,ENV 相当于容器的环境变量,在容器运行时也有效
ARG 可用于构建时指定不同的参数
docker build -t test --build-arg B=12 .
LABEL k="v" k1="v1" 一般写在第二行,用于指定元数据信息,便于用于 docker inspect
ONBUILD ENV C=100
ONBUILD 后面可以指定其他 Dockerfile 中的参数,这个是在镜像被创建的时候运行的
比如在另一个 Dockerfile 中
FROM test # 这里使用了 test 作为父镜像,test 中有 ONBUILD
STOPSIGNAL 指定终止容器的信号名
HEALCHECK 检查运行状态
Dockerfile文件SHELL指令可以覆盖命令的shell模式所使用的默认shell。 Linux的默认shell是 [“/bin/sh”, “-c”],Windows的是 [“cmd”, “/S”, “/C”]
标签:容器,CMD,指定,ENTRYPOINT,镜像,docker,Dockerfile,小记 来源: https://www.cnblogs.com/slime04/p/16403908.html