如何使用docker-compose杀死特定的docker容器?

时间:2020-11-06 19:29:44

标签: docker-compose

如何使用docker-compose杀死特定的docker容器,我已经尝试了以下方法,但是它不能正常工作,感谢您的帮助。

root@docker:/opt/dockercompose# docker  container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
792663a9f2de        nginx               "nginx -g 'daemon of…"   About an hour ago   Up 6 minutes        0.0.0.0:8005->80/tcp   dockercompose_webapp2_1
1f94ff0e70cf        nginx               "nginx -g 'daemon of…"   About an hour ago   Up 6 minutes        0.0.0.0:8000->80/tcp   dockercompose_webapp1_1
root@docker:/opt/dockercompose# docker-compose kill 792663a9f2de
ERROR: No such service: 792663a9f2de
root@docker:/opt/dockercompose#

2 个答案:

答案 0 :(得分:1)

所有docker-compose命令都采用docker-compose.yml文件中指定的服务名称。您显示的docker ps输出可以从docker-compose.yml文件创建,例如:

version: '3.8'
services:
  webapp1:
    image: nginx
    ports: ['8000:80']
  webapp2:
    image: nginx
    ports: ['8005:80']

如果您想杀死特定的由Compose管理的容器,则可以docker-compose kill webapp2;它将在docker-compose.yml中找到它,并将其与一些隐藏的容器元数据进行匹配。

对于大多数实际情况,如果您在Compose管理的环境中,则可以单独使用docker-compose命令:docker-compose ps列出容器,docker-compose logs查看容器的输出, 等等。所有这些都再次使用Compose服务名称,而不是Docker容器名称或ID。

答案 1 :(得分:0)

以下命令有效-

root@docker:/opt/dockercompose# docker-compose -f docker-compose.yaml -p 792663a9f2de kill