如何杀死docker-compose生成的容器?

Pet*_*uss 3 docker docker-compose

(对不起,用术语“ kill”加上引号不是关于docker-compose kill,而是关于“ UNIX pskill”,该过程实际上超出了“ 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,所以我可以说“我杀死了它”。

tgo*_*gos 10

平常docker run可以通过平常“杀死” docker stop,因为停下来后我看不到处的容器docker ps

不。docker stop只是停止一个正在运行的容器,它不会删除该容器。仅在您使用过的情况下才会发生这种情况docker run --rm ...。此--rm选项意味着当容器停止时,它将被删除/删除。


码头工人

  • docker run ... 创建并运行一个容器
  • docker stop ... 停止正在运行的容器
  • docker start ... 启动一个停止的容器
  • docker rm ... 删除停止的容器

Docker撰写

  • docker-compose up创建并运行容器的集合
  • docker-compose stop 停止容器
  • docker-compose start 启动容器
  • docker-compose down 停止并取出容器

小心...

由于它在评论部分讨论,通过使用docker-compose down其他的东西也可以采取有关地方volumesnetworks。请记住,您可能会丢失数据(例如,如果您的容器是一个数据库),请确保已保存它们,或者可以通过某种方式再次创建它们。


emi*_*mix 7

检查正在运行的容器:

\n

docker ps

\n

输出示例:

\n
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                              NAMES\ne86521d81a96        app_php                 "docker-php-entrypoi\xe2\x80\xa6"   2 hours ago         Up About an hour    0.0.0.0:8080->80/tcp               app_php_1\n7a30681b6255        mysql:5.6               "docker-entrypoint.s\xe2\x80\xa6"   3 hours ago         Up About an hour    0.0.0.0:3306->3306/tcp             app_db_1\n21aa3eef5f42        phpmyadmin/phpmyadmin   "/run.sh supervisord\xe2\x80\xa6"   4 hours ago         Up About an hour    9000/tcp, 0.0.0.0:8081->80/tcp     app_phpmyadmin_1\n9afc52b3f82f        mailhog/mailhog         "MailHog"                4 hours ago         Up About an hour    1025/tcp, 0.0.0.0:8082->8025/tcp   app_mailhog_1\n
Run Code Online (Sandbox Code Playgroud)\n

然后通过容器 ID 停止一个:

\n

docker kill part_of_the_id/name

\n

例如:

\n

docker kill e86或者docker kill app_php_1

\n

Docker-compose 只是一个脚本,可帮助您管理在一组中运行的一个或多个容器,并且绝对不是管理容器所必需的。

\n

要完全移除容器,您必须移除容器docker rm container_id_or_name

\n

要正常停止所有正在运行的容器:

\n
docker stop $(docker ps -q)\n
Run Code Online (Sandbox Code Playgroud)\n

要杀死所有正在运行的容器:

\n
docker kill -s9 $(docker ps q)\n
Run Code Online (Sandbox Code Playgroud)\n