在docker-compose

时间:2018-05-09 20:52:42

标签: docker docker-compose

如果我跑

  

docker-compose ps

在我的项目中,我得到了一个包含Name,Command,State和Ports指定的容器列表。名称如下所示:

  

prefix_real_container_name_1

如果我使用全名来执行如下命令:

  

docker-compose stop prefix_real_container_name_1

然后我收到一个错误:

  

没有此类服务:prefix_real_container_name_1

但是以下工作:

  

docker-compose stop real_container_name

这里发生了什么?

2 个答案:

答案 0 :(得分:1)

使用docker-compose访问容器总是需要将服务名称作为参数传递,目前无法更改它。

但您可以在撰写文件中使用container_name关键字,如下所示:

services:
   random_service:
      container_name: random_service
      # other definitions

明确地将容器命名为与您的服务名称相同(例如random_service),以便它在docker psdocker-compose ps中显示相同,并且您将能够解决它同样来自:

$ docker stop random_service 

docker-compose stop random_service 

答案 1 :(得分:0)

Docker compose正在添加一些文本前缀和后缀以避免与其他容器名称冲突,比如如果你运行两个带节点的容器然后没有唯一的名称,那么你和docker会在识别它们时遇到问题