当前位置: 首页 > 知识库问答 >
问题:

如何停止运行容器,如果守护进程的错误响应是:无法杀死容器[...]权限被拒绝?

薛祯
2023-03-14

艰巨的任务:每次我试图停止或杀死一个正在运行的容器时,守护进程都会以错误响应的形式拒绝我的权限。

我刚开始用Ubuntu18学习如何使用docker。04虚拟机。我第一次运行一个容器。我没能阻止它,但至少它还在运行。现在,在我尝试运行另一个图像“furtuas/daisitory:image_available_first_ms”之后,一切都变得更糟了。两个集装箱在运行,我无法阻止其中一个。我尝试重新启动docker,但容器仍在运行,不同的是localhost不再工作。也许是因为我和之前的主机是同一台主机

我不熟悉docker、ubuntu、terminal等。我希望能为初学者提供详细的答案

$ docker info
Containers: 2
 Running: 2
 Paused: 0
 Stopped: 0
Images: 8
Server Version: 18.09.1
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 local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9754871865f7fe2f4e74d43e2fc7ccd237edcbce
runc version: 96ec2177ae841256168fcf76954f7177af9446eb
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.15.0-43-generic
Operating System: Ubuntu 18.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 3.83GiB
Name: dai-2
ID: ULKT:IYPB:L6GI:VQWG:FZQX:J6G6:OWOU:DP5M:KQFC:PWBJ:HEMA:VDIT
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: icoe
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

WARNING: No swap limit support




$ docker version
Client:
 Version:           18.09.1
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        4c52b90
 Built:             Wed Jan  9 19:35:31 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       4c52b90
  Built:            Wed Jan  9 19:02:44 2019
  OS/Arch:          linux/amd64
  Experimental:     false





$ docker images
REPOSITORY                      TAG                        IMAGE ID            CREATED             SIZE
furtuas/daisitory     image_available_first_ms   64b3943856a0        6 days ago          660MB
icoe/dockerimageavailable   first_ms                   64b3943856a0        6 days ago          660MB
dockerimageavailable            latest                     64b3943856a0        6 days ago          660MB
my-maven                        latest                     704b027074fb        6 days ago          660MB
dockerimagedetails              latest                     2da0a7987c2a        6 days ago          643MB
dockerimage                     latest                     af97e6623a8c        6 days ago          643MB
maven                           latest                     3bc97dc2e7ba        3 weeks ago         832MB
java                            8                          d23bdf5b1b1b        2 years ago         643MB





$ docker ps
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
66c6c49a95f4        furtuas/daisitory:image_available_first_ms   "java -jar /car-pool…"   3 hours ago         Up 3 hours                                   first_ms_test
8e0646cc95f8        704b027074fb                                           "java -jar /car-pool…"   6 days ago          Up 6 days           0.0.0.0:8080->8080/tcp   container_available





$ docker stop first_ms_test 
Error response from daemon: cannot stop container: first_ms_test: Cannot kill container 66c6c49a95f499abeb62b1c02e7e9b8ce1739709bb2140ba7b1a61094a9d16f7: unknown error after kill: runc did not terminate sucessfully: container_linux.go:387: signaling init process caused "permission denied"
: unknown




$ docker container rm -f first_ms_test 
Error response from daemon: Could not kill running container 66c6c49a95f499abeb62b1c02e7e9b8ce1739709bb2140ba7b1a61094a9d16f7, cannot remove - Cannot kill container 66c6c49a95f499abeb62b1c02e7e9b8ce1739709bb2140ba7b1a61094a9d16f7: unknown error after kill: runc did not terminate sucessfully: container_linux.go:387: signaling init process caused "permission denied"
: unknown

请帮忙。

$ docker ps -a
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
66c6c49a95f4        furtuas/daisitory:image_available_first_ms   "java -jar /car-pool…"   3 hours ago         Up 3 hours                                   first_ms_test
8e0646cc95f8        704b027074fb                                           "java -jar /car-pool…"   6 days ago          Up 6 days           0.0.0.0:8080->8080/tcp   container_available

注销虚拟机后,仍然有相同的响应:

$ docker stop 66c6c49a95f4
Error response from daemon: cannot stop container: 66c6c49a95f4: Cannot kill container 66c6c49a95f499abeb62b1c02e7e9b8ce1739709bb2140ba7b1a61094a9d16f7: unknown error after kill: runc did not terminate sucessfully: container_linux.go:387: signaling init process caused "permission denied"
: unknown

共有3个答案

云浩然
2023-03-14

这可能是由于Ubuntu的安全性,特别是它的安全

在这种情况下,您应该在docker中添加——security opt apparmor:unconfined。这似乎比移除apparmor更可取。

e、 g.试试:

docker run --security-opt apparmor:unconfined -ti ubuntu bash

然后试着让docker停下来,看看它是否有效!

凌意
2023-03-14

使用技巧:

sudo killall docker-containerd-shim

docker从停止的容器中释放出来

詹甫
2023-03-14

我解决了,但我不知道为什么。我想我通过重新启动VM和使用这些命令重新启动docker解决了这个问题

刷新更改:$sudo system ctl daemon-reload
重新启动Docker:$sudo system ctl重新启动docker

 类似资料:
  • 问题内容: 艰巨的任务: 每当我尝试停止或终止正在运行的容器时,都会收到Daemon拒绝的权限作为错误响应。 我刚刚开始通过使用Ubuntu18.04 VM学习如何使用docker。我是第一次运行容器。我无法停止它,但至少它正在运行。现在,当我尝试运行另一个图像“ furtuas / daisitory:image_available_first_ms”后,一切都变得更糟了。两个容器正在运行,我无

  • 问题内容: 问题 :无法停止泊坞窗容器,每当我尝试停止容器时,都会收到以下错误消息, 操作系统版本/内部版本: Ubuntu 16.04 | Docker版本17.09.0-ce,构建afdb6d4 | Docker Compose版本1.17.1,内部版本6d101fb 重现步骤: 使用Dockerfile和docker-compose.yml创建了Rails项目。docker-compose.

  • 我采取的mysql备份从一个Linux环境使用下面的命令,docker exec CONTAINER /usr/bin/mysqldump-u root--word=root DATABASE 然后我尝试使用下面的命令将上面的sql转储还原到另一个Linux环境,cat备份.sql |Docker exec -i CONTAINER /usr/bin/mysql -u root --passwor

  • 我有一个用PHP编写的守护进程(不是最好的语言,但与我一起工作),它用于从队列接收作业,并在需要完成作业时处理它们。对于每个新作业,我使用pcntl_fork()将作业分叉到子进程中。在这个子进程中,我然后使用proc_open()执行用于音频转码的长时间运行的系统命令,完成后直接返回到子进程。作业完成后,子进程退出并由父进程清理。 为了保持这个守护进程始终运行,我使用upstart。这是我的暴发

  • 我通过以下方式在Ubuntu 18上安装了Docker: sudo snap安装docker 已创建docker组,请将我的用户添加到其中。现在尝试通过以下方式进行测试: docker容器运行hello-world 并收到错误: docker:来自守护程序的错误响应:未能侦听抽象unix套接字“/容器填充程序/moby/Abcfbe6936523635F7064C99E32321E30DD4628

  • 我正在使用Docker Compose运行多个容器,包括一个带有Postgres映像的容器。我正在尝试向该容器添加一个卷,以跨容器构建持久化我的数据。但是,当它尝试在容器中为该卷创建目录时,我收到了一个错误。 我运行: 然后 docker compose up 我收到以下错误: 错误:对于cxbenchmark\u db\u 1,无法启动服务db:oci运行时错误:container\u linu