【发布时间】:2016-12-31 10:23:21
【问题描述】:
我决定更改一个 docker 组合的项目名称:
$ docker-compose -p old_name up -d # Before
Starting old_name_web_1
$ docker-compose -p new_name up -d # After
Creating new_name_web_1
但我不想删除我的容器,所以我重命名了它们:
$ docker rename old_name_web_1 new_name_web_1
...
我以为 docker-compose 是基于容器名称的,但似乎不是这样:
$ docker-compose -p new_name up -d
错误:对于 web 无法为服务 web 创建容器:冲突。名称“/new_name_web_1”已被容器 4930deaabb[...] 使用。您必须删除(或重命名)该容器才能重用该名称。 错误:启动项目时遇到错误。
如何将旧容器重新链接到新组合?
【问题讨论】:
-
投反对票,因为 docker 的整个概念在这里被忽视了。在 docker 世界中,即使稍微关心容器被删除/重新创建也是错误的。容器的外观和处理方式应类似于 tmp 文件 - 您可以并且想要重新创建它们。
-
不确定是否值得投反对票,因为我很清楚这个问题,但我明白你在说什么。它应该得到一个答案,尽管这会帮助像我这样可能没有正确思维方式的其他人。
-
对这个问题的任何回答都完全是在滥用这个概念,从长远来看,它实际上会对你造成巨大伤害。由于您的问题不是关于“一般如何做 docker”,而是更具体,所以如果不回答完全不同的问题/不是最初的问题,我就无法给出答案。你真的应该深入了解,为什么你需要它,如果你需要它 - 以及在这种情况下你通常强迫了什么。像 swarm/kubernetes/rancher 这样的普通管理器会随时删除容器以“重新启动”堆栈。Container=not persistent
标签: docker docker-compose