docker cmd

FROM busybox

ENTRYPOINT "echo", "echo", "echo" # 3 个部分

CMD "c", "d", "e", "f", "g" # 5 个部分

Docker 规则:

ENTRYPOINT 全部 + CMD 全部 = 直接拼在一起,变成一条命令!

拼起来就是:

echo echo echo c d e f g

执行结果:echo echo c d e f g

CMD 的唯一设计意义

给容器设置默认启动参数 / 默认子命令

允许用户在 docker run 镜像 后面跟内容 直接覆盖替换 这套默认参数

不用改 Dockerfile、不用重新构建镜像,就能临时换启动参数

eg:

场景 1:只用 CMD 不写 ENTRYPOINT

dockerfile:

CMD "nginx", "-g", "daemon off;"

此时 CMD 是完整启动命令 + 参数

docker run 镜像 就执行这条

docker run 镜像 ls -l → 直接整条替换,不跑 nginx 改跑 ls

意义:给镜像设默认启动命令,支持运行时一键替换整个命令

场景 2:ENTRYPOINT + CMD 搭配

dockerfile:

ENTRYPOINT "/usr/bin/nginx"

CMD "-g", "daemon off;"

ENTRYPOINT:固定主程序,写死不换

CMD:给主程序的默认参数

运行:

docker run 镜像 → 用 CMD 默认参数:nginx -g daemon off;

docker run 镜像 -v → 覆盖 CMD,变成:nginx -v

相关推荐
码少女32 分钟前
Linux--套接字编程
linux·服务器·网络
进击的荆棘35 分钟前
Linux系统——进程控制(下)
linux·运维·服务器·进程
优化Henry1 小时前
学习笔记之关于MME不通问题归纳
运维·网络·学习·5g·信息与通信
考虑考虑8 小时前
数据库中的EXISTS
运维·数据库·后端
爱网络爱Linux8 小时前
【系列】每天一个 Linux 命令(53)startx 命令
linux·rhce·rhca·linux运维·linux命令大全·红帽认证
ZhengEnCi8 小时前
L2A-一个域名如何访问多台云服务器-子域名、路径前缀与Nginx反向代理选型指南
linux·人工智能
M78佐菲8 小时前
51单片机学习笔记:ds18b20要点整理
linux·笔记·嵌入式硬件·学习·51单片机
高亦真9 小时前
今天是学习嵌入式的第37天
linux·学习·算法
一个有温度的技术博主9 小时前
Linux 核心命令速查指南:从文件操作到系统运维
linux·服务器
小小的木头人10 小时前
Docker 环境下迁移 containerd 数据目录:从 `/var/lib/containerd` 到 `/data/containerd`
linux·docker