dockerfile常用命令解析
FROM
基础镜像,FROM 命令必须是 Dockerfile 的首个命令
也就是继承哪个镜像
LABEL
为镜像生成元数据标签信息
原有指令 MAINTAINER 已经放弃使用,用 LABEL maintainer="你的邮箱" 替代
USER
指定运行容器时的用户名或 UID,后续 RUN 也会使用指定用户
VOLUME
定义匿名卷,容器运行时应该尽量保持容器存储层不发生写操作,为了防止运行时用户忘记将动态文件保存的目录挂载为卷,可以事先指定某些目录挂载为匿名卷。这样就不会向容器存储层写入大量数据
WORKDIR
用于设置 CMD 指明的命令的运行目录
为后续的 RUN、CMD、ENTRYPOINT、ADD 指令配置工作目录。可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。使用 docker exec -it 进入容器后,默认也会进入到 WORKDIR 指定的目录
容器启动时的⼯作⽬录
ENV
指定容器启动时的环境变量(注意,只有在容器启动时,启动脚本能读取到,如果希望其他用户登录到容器也生效的话,需要写入 .bashrc)
设置镜像内的环境变量
COPY
COPY 命令有两个参数,源和目标。它的基本作用是从源系统的文件系统上复制文件到目标容器的文件系统
EXPOSE
指定端口转发
CMD
设置容器创建是执行的默认命令
支持三种格式,默认会被 docker run 指定的参数覆盖。每个容器只能执行一条 CMD 命令。执行的命令和参数当指定多个时,只有最后一个起效
- CMD [“executable”, “参数1”,“参数2”]:使用 exec 方式执行,推荐
- CMD command 参数1 参数2:shell 方式执行
- CMD [“参数1”,“参数2”]:提供给 ENTRYPOINT 做默认参数
启动容器时执行的shell命令
ENTRYPOINT
指定容器的“入口”
支持两种格式,默认不会被 docker run 指定的参数覆盖。可以指定 --entrypoint 参数去覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效
- ENTRYPOINT [“executable”, “参数1”,“参数2”]:使用 exec 方式执行
- 推荐 - ENTRYPOINT command 参数1 参数2:shell 方式执行
指定容器启动脚本
HEALTHCHECK
Docker 1.12版本后引入的判断容器运行状态是否正常
ADD
ARG
构建环境的环境变量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)