如果我跑
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
这里发生了什么?
答案 0 :(得分:1)
使用docker-compose
访问容器总是需要将服务名称作为参数传递,目前无法更改它。
但您可以在撰写文件中使用container_name
关键字,如下所示:
services:
random_service:
container_name: random_service
# other definitions
明确地将容器命名为与您的服务名称相同(例如random_service
),以便它在docker ps
和docker-compose ps
中显示相同,并且您将能够解决它同样来自:
$ docker stop random_service
和
docker-compose stop random_service
答案 1 :(得分:0)
Docker compose正在添加一些文本前缀和后缀以避免与其他容器名称冲突,比如如果你运行两个带节点的容器然后没有唯一的名称,那么你和docker会在识别它们时遇到问题