如何使用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#
答案 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