docker run的时候参数

博客提到参数会覆盖掉config.yml里的参数,但未详细说明参数及覆盖机制等更多信息。

参数会覆盖掉 config.yml里面的参数哦.

在使用 `docker run` 命令时,参数的顺序**在大多数情况下是灵活的**,但为了确保命令正确解析,理解 Docker CLI 的语法结构和推荐的参数顺序是非常重要的。 ### `docker run` 的基本语法 ```bash docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] ``` - `[OPTIONS]`:Docker 容器运行时的各种配置选项(如 `-d`, `-p`, `-v`, `--name` 等) - `IMAGE`:要运行的镜像名称(如 `nginx`, `ubuntu` 等) - `[COMMAND]`:容器启动后要执行的命令(可选,覆盖镜像的默认 CMD) - `[ARG...]`:传递给 COMMAND 的参数 --- ### 参数顺序详解 虽然 Docker 允许你在大多数情况下打乱参数顺序,但**最佳实践是将 OPTIONS 放在 IMAGE 之前,COMMAND 和 ARG 放在 IMAGE 之后**。否则可能会导致命令被错误解析。 #### ✅ 正确且推荐的顺序: ```bash docker run -d --name my_nginx -p 8080:80 nginx nginx -g 'daemon off;' ``` 解释: - `-d`, `--name`, `-p` 是 OPTIONS - `nginx` 是 IMAGE - `nginx -g 'daemon off;'` 是 COMMAND(覆盖默认 CMD) #### ⚠️ 不推荐或可能出错的顺序: ```bash docker run nginx -d --name my_nginx # ❌ 错误!-d 被当作命令传给镜像 ``` 这里 Docker 会尝试以 `nginx` 镜像运行命令 `-d`,而 `--name` 会被当作参数传递给 `-d`,这显然不是我们想要的。 --- ### 关键原则总结 1. **所有选项(以 `-` 或 `--` 开头)必须放在镜像名之前**,否则会被当作命令处理。 2. **镜像名之后的内容会被当作要执行的命令及其参数**。 3. **顺序混乱可能导致意外行为或错误**。 --- ### 示例说明 ```bash # 示例 1:后台运行 Nginx,映射端口,指定名称 docker run -d -p 80:80 --name webserver nginx ``` - `-d`, `-p`, `--name` 是选项,在镜像前 - `nginx` 是镜像 - 没有指定 COMMAND,使用镜像默认的启动命令 ```bash # 示例 2:运行 Ubuntu 容器并执行自定义命令 docker run -it ubuntu bash ``` - `-it` 是选项 - `ubuntu` 是镜像 - `bash` 是要执行的命令 ```bash # 示例 3:带参数的命令 docker run ubuntu echo "Hello, Docker!" ``` - `echo` 是命令,`"Hello, Docker!"` 是参数 ```bash # 示例 4:错误示例 —— 选项放到了镜像后面 docker run ubuntu -it bash # ❌ -it 被当作命令,会报错 ``` 正确写法: ```bash docker run -it ubuntu bash # ✅ ``` --- ### 特殊情况:`--` 分隔符 你可以使用 `--` 明确分隔选项和命令,但这在 `docker run` 中不常用,因为语法已经明确。 --- ### 总结 | 类型 | 位置 | 示例 | |------|------|------| | OPTIONS | 镜像之前 | `-d`, `-p 80:80`, `--name web` | | IMAGE | 中间核心 | `nginx`, `ubuntu:20.04` | | COMMAND + ARG | 镜像之后 | `bash`, `echo hello` | > 📌 **核心规则:选项必须在镜像名之前,命令必须在镜像名之后。** --- ### 相关问题 1. `docker run` 中 `-it` 参数的作用是什么? 2. 如何覆盖 Docker 镜像的默认 CMD 或 ENTRYPOINT? 3. `docker run -d` 和 `docker run` 的区别是什么? 4. 如何挂载主机目录到容器中?使用 `-v` 参数的正确语法是什么?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值