Docker-Compose问题与容器名称

时间:2016-01-06 06:34:24

标签: docker boot2docker dockerfile docker-compose docker-registry

我创建了一个包含所需包的docker镜像。我已经运行了docker镜像,指定了主机和访客端口以及所需的卷安装 例如:

sudo docker run -it --name CONTAINERNAME -v /host:/guest -p
hostportno:guestportno

我的容器运行良好 我正在尝试使用docker-compose将容器迁移到新的泊坞窗图像 我创建了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 run进程中启动的名称相同的docker-compose重新启动/迁移容器。

2 个答案:

答案 0 :(得分:2)

不,您不能拥有两个名称相同的容器。您必须为container_name字段选择其他名称。在重新使用名称之前,需要先删除上一个容器。

如果您希望Compose将容器视为已创建它,则必须将容器标签设置为Compose。查找这些内容的最简单方法是创建一个容器(可能是删除container_name字段),然后使用docker inspect查看标签。

答案 1 :(得分:0)

您可以查看--force-recreate是否有帮助:

 docker-compose up --force-recreate  

来自docker-compose up man page

  

如果要强制Compose停止并重新创建所有容器,请使用--force-recreate标志。

 --force-recreate  
  

重新创建容器即使其配置和图像无法更改