命令是干什么的
docker rename 修改容器名称,运行中与已停止的容器都可以改。名称只是人可读的标识,Docker 内部仍按容器 ID 追踪对象,所以改名不影响容器 ID、网络、数据卷和运行状态;但名称是日常操作、同网络内 DNS 解析和脚本引用的主要方式,改完要同步更新所有依赖方。
基本信息
| 用途 | 修改容器名称 |
|---|---|
| 语法 | docker rename 旧名 新名 |
| 名称唯一性 | 全局唯一,包含已停止的容器 |
| 生效时机 | 立即生效,无需重启容器 |
| 影响范围 | 不改 ID、网络与数据,影响按名字引用的脚本与解析 |
典型使用场景
- 临时容器转正:把 test-web 改成 web 并纳入文档与监控
- 发布切换准备:新容器先用临时名验证,确认后再接管正式名
- 命名规范整改:统一成项目-角色-序号形式,便于脚本批量处理
- 名称冲突规避:旧容器先让位改名,再让新容器占用正式名
- 事故现场归档:把问题容器改名加后缀保留,避免被误操作
基础用法
基础用法
docker rename web web-old # 旧容器让位,运行状态与数据都保留
docker rename web-tmp web # 新容器接管正式名
docker inspect -f '{{.Name}} {{.State.Status}}' web # 确认名称与状态
docker ps -a --format '{{.Names}} {{.ID}}' | head # 列出名称清单核对
docker rename web web2 && docker rename web2 web # 换名失败时的回退思路改名前后的影响面
| 对象 | 是否受影响 | 说明 |
|---|---|---|
| 容器 ID | 不受影响 | 脚本内用 ID 引用最稳定 |
| 数据卷与网络 | 不受影响 | 挂载与连接关系按 ID 保持 |
| 同网络 DNS | 受影响 | 容器名即网络内主机名,调用方要改成新名 |
| 外部引用 | 受影响 | 监控、文档、定时任务中的旧名称都要更新 |
容器名与 hostname 是两回事:用 --hostname 指定的主机名不会随 rename 变化,容器内执行 hostname 看到的仍是旧值。
Compose 管理的容器名由项目名与服务名拼成,手工 rename 会在下次 up 重建时被覆盖;规范做法是改 compose 文件里的 container_name。