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

时间:2018-07-25 11:09:31

标签: docker docker-compose

(对不起,用术语“ 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 stopdocker ps -a没事,所以我可以说“我杀死了它”。

3 个答案:

答案 0 :(得分:8)

  

通常的docker run可能会被“ docker stop杀死”,因为停下来后我看不到docker ps处的容器。

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


Docker

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

Docker Compose

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

注意...

如评论部分所述,通过使用docker-compose down,关于volumesnetworks的其他事情也可能发生。请记住,您可能会丢失数据(例如,如果您的容器是数据库),请确保已保存它们,或者可以通过某种方式再次创建它们。

答案 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 e86docker kill app_php_1

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

答案 2 :(得分:0)

您可以使用docker rm <container-name>来做到这一点。此命令将停止并删除服务容器。附加到容器的匿名卷将不会被删除。