【问题标题】:Why I cannot remove running docker container on ubuntu?为什么我无法删除 ubuntu 上正在运行的 docker 容器?
【发布时间】:2021-10-13 19:31:44
【问题描述】:

我尝试清除当前的 docker 容器,但出现权限被拒绝错误:

usernam2@ubuntuOS:/ProjectPath/DOCKER$ docker rm $(docker ps -a -q)
9790e408ff40
Error response from daemon: You cannot remove a running container a74d9ad73c264c800c3628738c0f4b62f187aa51c7f93cbfc539494903a72f38. Stop the container before attempting removal or force remove
usernam2@ubuntuOS:/ProjectPath/DOCKER$ docker-compose down --remove-orphans
Stopping lar_nginx_web ... error

ERROR: for lar_nginx_web  cannot stop container: a74d9ad73c264c800c3628738c0f4b62f187aa51c7f93cbfc539494903a72f38: Cannot kill container a74d9ad73c264c800c3628738c0f4b62f187aa51c7f93cbfc539494903a72f38: unknown error after kill: runc did not terminate sucessfully: container_linux.go:392: signaling init process caused "permission denied"
: unknown
Removing network docker_default
ERROR: error while removing network: network docker_default id 3f04876099e732d53f693929d90b316b269383f2b2c3a2b5f84f607992001125 has active endpoints
usernam2@ubuntuOS:/ProjectPath/DOCKER$ docker system prune --force --volumes
Total reclaimed space: 0B


usernam2@ubuntuOS:/ProjectPath/DOCKER$ docker ps
CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS          PORTS      NAMES
a74d9ad73c26   docker_app   "docker-php-entrypoi…"   13 minutes ago   Up 13 minutes   9000/tcp   lar_nginx_web


usernam2@ubuntuOS:/ProjectPath/DOCKER$ docker-compose down
Stopping lar_nginx_web ... error

ERROR: for lar_nginx_web  cannot stop container: a74d9ad73c264c800c3628738c0f4b62f187aa51c7f93cbfc539494903a72f38: Cannot kill container a74d9ad73c264c800c3628738c0f4b62f187aa51c7f93cbfc539494903a72f38: unknown error after kill: runc did not terminate sucessfully: container_linux.go:392: signaling init process caused "permission denied"
: unknown
Removing network docker_default
ERROR: error while removing network: network docker_default id 3f04876099e732d53f693929d90b316b269383f2b2c3a2b5f84f607992001125 has active endpoints

我想我没有 tio 以 root 身份运行它们,但即使以 root 身份运行我也遇到了同样的错误。

如何解决?

谢谢!

【问题讨论】:

    标签: ubuntu docker-compose


    【解决方案1】:

    您必须在删除它们之前杀死/停止所有正在运行的容器。可以通过运行下面的cmd来杀死/停止它

    docker kill $(docker ps -q)
    
             or
    
    docker stop $(docker ps -aq)
    

    然后通过

    删除它们
    docker rm $(docker ps -a -q)
    

    【讨论】:

    • 我有同样的错误:docker kill $(docker ps -q) 来自守护进程的错误响应:无法杀死容器:a74d9ad73c26:无法杀死容器a74d9ad73c264c800c3628738c0f4b62f187aa51c7f93cbfc539494903a72f38:未成功终止后运行未知错误: container_linux.go:392:信令初始化进程导致“权限被拒绝”:未知也许我必须为我的 ubuntu 用户(不是 root)添加一些访问权限
    • 试试sudo docker kill $(docker ps -q)
    • 我得到:sudo docker kill $(docker ps -q) 来自守护进程的错误响应:无法杀死容器:a74d9ad73c26:无法杀死容器 a74d9ad73c264c800c3628738c0f4b62f187aa51c7f93cbfc539494903a72f38:未知错误:容器_未成功终止: go:392: 信令初始化进程导致“权限被拒绝”:未知
    • 我重新启动了操作系统:没有帮助。也许是一些内部错误?如果有办法重新初始化 docker ?
    • 如果 docker 总是在您停止后重新启动,那么您很有可能启用了--restart=always。如果是这种情况,这可能会解决您的问题https://stackoverflow.com/questions/39072357/how-to-stop-a-docker-container-which-started-with-restart-always
    【解决方案2】:

    可能与 AppArmor 相关。 检查您是否从不同来源安装了多个 docker 实例,因为这可能会导致 AppArmor 配置文件发生冲突。

    我可以看到您使用的是 Ubuntu - 因此您可能通过 snap 提供了额外的 docker。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-27
      • 2019-02-17
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      相关资源
      最近更新 更多