其他分享
首页 > 其他分享> > Dockerfile 小记

Dockerfile 小记

作者:互联网

来源:https://www.bilibili.com/video/BV1k7411B7QL?spm_id_from=333.999.0.0&vd_source=c7efea58683b7cac78db212090cd2e4e

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