停止容器如何运行`docker-compose run`

时间:2015-06-29 03:47:33

标签: docker docker-compose

我试图使用docker-compose来编排几个容器。要进行故障排除,我经常最终通过执行以下操作从容器中运行bash:

$ docker-compose run --rm run web bash

我总是尝试传递--rm开关,以便在退出bash会话时删除这些容器。但有时候,它们仍然存在,我在docker-compose ps的输出处看到它们。

           Name                          Command                State      Ports
----------------------------------------------------------------------------------
project_nginx_1            /usr/sbin/nginx                  Exit 0
project_nginx_run_1        bash                             Up         80/tcp
project_web_1              python manage.py runserver ...   Exit 128
project_web_run_1          bash                             Up         8000/tcp

此时,我试图手动停止并删除这些组件,但我无法做到这一点。我试过了:

$ docker-compose stop project_nginx_run_1
No such service: project_nginx_run_1

我还尝试了其他命令rmkill等等。

我该怎样做才能摆脱这些容器?

修改

修正了docker-compose ps的输出。

4 个答案:

答案 0 :(得分:45)

使用docker stop命令停止这些测试容器,而不是使用docker-compose

docker-compose一起启动许多容器时会发光,但使用docker-compose启动容器并不会阻止您使用docker命令执行个人需要执行的任何操作容器

docker stop project_nginx_run_1 project_web_run_1 

此外,由于您正在调试容器,我建议使用docker-compose exec <service id> bash在正在运行的容器中获取shell。这样做的好处是无法启动新容器。

答案 1 :(得分:3)

使用docker-compose,服务可以通过两种方式停止,但我想添加一些关于这两种选项的详细信息。

  

简而言之

     

docker-compose down

     

停止并移除容器,网络,图像和卷

     

docker-compose stop

     

停止服务

详细

如果docker-compose run启动服务 project_nginx_run_1 project_web_run_1 ,那么

docker-compose down日志将

$ docker-compose down
Stopping project_nginx_run_1 ...
Stopping project_web_run_1 ...

.
. some service logs goes here

Stopping project_web_run_1 ... done
Stopping project_nginx_run_1 ... done
Removing project_web_run_1 ... done
Removing project_nginx_run_1 ... done
Removing network project_default

docker-compose stop日志将

$ docker-compose stop
Stopping project_nginx_run_1 ...
Stopping project_web_run_1 ...

.
. some service logs goes here

Stopping project_web_run_1 ... done
Stopping project_nginx_run_1 ... done

答案 2 :(得分:2)

docker-composedocker不同,使用yml文件中定义的容器名称。因此,仅停止一个容器的命令将是:

docker-compose stop nginx_run

答案 3 :(得分:0)

docker-compose down

从启动它的目录中,是我设法确认它被停止的唯一方法,就像在docker-compose ps中不再产生它一样!