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”]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)