来自守护程序的错误响应:无法停止容器

时间:2018-08-07 14:57:24

标签: docker rabbitmq bitnami

我启动了Docker容器:

VirtualBox:~$ sudo docker run --name rabbitmq -d -p 0.0.0.0:5672:5672 -p 0.0.0.0:15672:15672 bitnami/rabbitmq

一切正常,容器正在工作。

docker  ps

CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                                                                                                NAMES
dd3d12133774        bitnami/rabbitmq:latest   "/app-entrypoint.sh …"   37 minutes ago      Up 37 minutes       0.0.0.0:4369->4369/tcp, 0.0.0.0:5672->5672/tcp, 0.0.0.0:15672->15672/tcp, 0.0.0.0:25672->25672/tcp   sad_knuth
203500ee7f1e        bitnami/rabbitmq          "/app-entrypoint.sh …"   5 hours ago         Up 5 hours          0.0.0.0:5672->5672/tcp, 4369/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp                                rabbitmq

当我使用命令时:

docker stop 203500ee7f1e

docker stop rabbitmq

什么都没发生(错误):

VirtualBox:~$ docker stop rabbitmq
Error response from daemon: cannot stop container: rabbitmq: Cannot kill container 203500ee7f1eb09bf0ecb2fdaf2041f4da27990a3654bca90b808a3ec36238cf: unknown error after kill: docker-runc did not terminate sucessfully: container_linux.go:393: signaling init process caused "permission denied"
: unknown

输出Docker版本

VirtualBox:~$ docker version
Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:09:54 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:07:56 2018
  OS/Arch:          linux/amd64
  Experimental:     false

输出Docker信息

    VirtualBox:~$ docker info
Containers: 2
 Running: 2
 Paused: 0
 Stopped: 0
Images: 2
Server Version: 18.06.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d64c661f1d51c48782c9cec8fda7604785f93587
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.15.0-29-generic
Operating System: Ubuntu 18.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.852GiB
Name: ivanpuzyrev-VirtualBox
ID: 2LAE:PADC:VVDH:G2OW:MWUD:IRTS:CRNU:J727:DDEV:ZYBS:GTGG:SIOI
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support

请帮助!!!什么都没发生。也许您有什么想法?

9 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我通过使用此命令在 docker 容器中执行 shell 解决了它 docker exec -it imagebase bash 然后发出 kill 1 命令。

答案 1 :(得分:1)

由于您以'sudo'身份运行docker,因此必须以'sudo'特权将其停止

stop容器

sudo docker stop 203500ee7f1e

remove容器

sudo docker rm 203500ee7f1e

如果要停止并卸下所有容器,则以下命令将很有用

sudo docker stop $(docker ps -a -q)  && sudo docker rm  $(docker ps -a -q) 

答案 2 :(得分:1)

我将不同意每个建议使用sudo的人。 docker命令将api调用发送到守护程序,如果需要sudo来运行该命令,则从连接到docker套接字的失败中可以知道。守护程序本身应以root用户身份运行。

对我来说,许可错误似乎是由AppArmor策略引起的,也可能只是引擎/容器/运行程序中的错误。您还正在运行Ubuntu 18.04,该docker仅在最近才添加了支持,因此,如果可能,请尝试运行稍旧的Ubuntu LTS版本,或查看Edge / nightly版本之一是否解决了该问题。在短期内,您可能会幸运地重新启动docker引擎(systemctl restart docker),并且可能重新启动整个主机,以查看是否可以解决问题。

答案 3 :(得分:0)

以超级用户身份尝试

sudo docker container stop rabbitmq

答案 4 :(得分:0)

尝试杀死它:

sudo docker kill rabbitmq

这将强制停止,但不会移除容器。

答案 5 :(得分:0)

尝试重新加载守护程序并重新启动docker,然后删除所有容器。

在Linux上:

$sudo systemctl daemon-reload
$sudo systemctl restart docker
$docker ps –qa|xargs docker rm

在Win.10上:

$docker stop $(docker ps -a -q)
$docker ps -qa|xargs docker rm

答案 6 :(得分:0)

您需要使用rabbitmqctl告诉rabbitmq退出:

docker exec rmq rabbitmqctl stop

(将rmq替换为您的容器名称)

进程安全停止后,docker容器应关闭。

答案 7 :(得分:0)

在Debian GNU / Linux 10(buster)上用snap安装docker之后,我遇到了同样的问题。在删除快照docker版本并根据https://docs.docker.com/engine/install/debian/#install-using-the-repository安装docker之后 和 https://docs.docker.com/engine/install/linux-postinstall/最多通过$ sudo systemctl enable docker 配置Docker在启动时启动 重启后,$ docker stop name-of-container起作用了。

答案 8 :(得分:0)

This answer 在 docker 方面也帮助了我:

之后

sudo aa-remove-unknown

问题立即消失,docker stop 将再次按预期工作。这是由于 Apparmor 服务的一些问题。