Docker-Compose问题与容器名称
我已经创build了一个包含所需包的Docker镜像。 我已经运行了指定主机和访客端口的docker镜像以及所需的卷安装示例:
sudo docker run -it --name CONTAINERNAME -v /host:/guest -p hostportno:guestportno
我的容器运行良好。
我正尝试使用docker-compose
将我的容器迁移到新的docker镜像。
我创build了docker-compose.yml
文件,并指定了如下所示的必需参数:
image: test1 ports - "1234:123" - "2000:223" volumes: - /home:/test -container_name: dockercomposetest working_dir: /test command: /bin/bash
我无法使用docker-compose来迁移它。
我得到如下所述的问题:
Conflict. The name "test" is already in use by container eeedac72bb25. You have to delete (or rename) that container to be able to reuse that name.
目前的解决办法是我必须停止并删除容器,并执行docker-compose up
。
我可以不使用docker-compose重新启动/迁移容器,其名称与我在正常的docker run
过程中启动的相同。
不,你不能有两个同名的容器。 您必须为container_name
字段select一个不同的名称。 之前的容器需要删除,然后才能重新使用该名称。
如果您希望Compose将容器视为已创build容器,则必须将容器标签设置为Compose。 find这些的最简单的方法是创build一个容器(可能通过删除container_name
字段),然后使用docker inspect
来查看标签。
你可以检查--force-recreate
是否有帮助:
docker-compose up --force-recreate
从docker-compose up
手册页 :
如果要强制Compose停止并重新创build所有容器,请使用
--force-recreate
标志。
--force-recreate
即使configuration和图像没有改变,也可以重新创build容器