(对不起,用术语“ kill”加上引号不是关于docker-compose kill
,而是关于“ UNIX ps
kill”,该过程实际上不在“ UNIX ps
列表中“)
通常的docker run
可以被通常的docker stop
杀死,因为停下来后我看不到docker ps -a
处的容器...如果正确,则存在语义错误docker-compose
,因为我无法“杀死”容器,所以它们停留在docker ps
处。
经过简单的docker-compose up
(没有&
)之后,我做了^C
,容器停留在docker ps -a
上……不可能被docker compose stop
杀死。
注意:当我使用普通的docker run
及其后的docker stop
时docker ps -a
没事,所以我可以说“我杀死了它”。
答案 0 :(得分:8)
通常的
docker run
可能会被“docker stop
杀死”,因为停下来后我看不到docker ps
处的容器。
不。 docker stop
只是停止正在运行的容器,它不会删除该容器。仅在您使用过docker run --rm ...
的情况下会发生这种情况。这个--rm
选项意味着当容器停止时,它将被删除/删除。
docker run ...
创建并运行一个容器docker stop ...
停止正在运行的容器docker start ...
启动一个停止的容器docker rm ...
删除已停止的容器docker-compose up
创建并运行容器的集合 docker-compose stop
停止容器docker-compose start
启动容器docker-compose down
停止并移除容器如评论部分所述,通过使用docker-compose down
,关于volumes
,networks
的其他事情也可能发生。请记住,您可能会丢失数据(例如,如果您的容器是数据库),请确保已保存它们,或者可以通过某种方式再次创建它们。
答案 1 :(得分:0)
检出正在运行的容器:
docker ps
示例输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e86521d81a96 app_php "docker-php-entrypoi…" 2 hours ago Up About an hour 0.0.0.0:8080->80/tcp app_php_1
7a30681b6255 mysql:5.6 "docker-entrypoint.s…" 3 hours ago Up About an hour 0.0.0.0:3306->3306/tcp app_db_1
21aa3eef5f42 phpmyadmin/phpmyadmin "/run.sh supervisord…" 4 hours ago Up About an hour 9000/tcp, 0.0.0.0:8081->80/tcp app_phpmyadmin_1
9afc52b3f82f mailhog/mailhog "MailHog" 4 hours ago Up About an hour 1025/tcp, 0.0.0.0:8082->8025/tcp app_mailhog_1
然后通过容器ID停止一个:
docker kill part_of_the_id/name
例如:
docker kill e86
或docker kill app_php_1
Docker-compose只是一个脚本,可帮助您管理在一个组中运行的一个或多个容器,并且绝对不需要管理容器。
答案 2 :(得分:0)
您可以使用docker rm <container-name>
来做到这一点。此命令将停止并删除服务容器。附加到容器的匿名卷将不会被删除。