gpt4 book ai didi

ruby-on-rails - 无法停止或删除 Docker 容器 - 权限被拒绝错误

转载 作者:IT老高 更新时间:2023-10-28 12:36:56 27 4
gpt4 key购买 nike

问题:无法停止 docker 容器,每当我尝试停止容器时,都会收到以下错误消息,

ERROR: for yattyadocker_web_1  cannot stop container: 1f04148910c5bac38983e6beb3f6da4c8be3f46ceeccdc8d7de0da9d2d76edd8: Cannot kill container 1f04148910c5bac38983e6beb3f6da4c8be3f46ceeccdc8d7de0da9d2d76edd8: rpc error: code = PermissionDenied desc = permission denied

操作系统版本/内部版本: Ubuntu 16.04 | Docker 版本 17.09.0-ce,构建 afdb6d4 | Docker Compose 版本 1.17.1,构建 6d101fb

重现步骤:

  • 使用 Dockerfile 和 docker-compose.yml 创建了一个 Rails 项目。 docker-compose.yml 是版本 3。
  • 使用 docker build -t <project name> . 成功构建镜像或 docker-compose up --build
  • 容器启动并成功运行。
  • 尝试使用 docker-compose down 停止 docker compose。

我尝试了什么::

  • 我必须运行 sudo service docker restart然后可以移除容器。
  • 卸载 docker,删除 docker 目录,然后重新安装所有内容。仍然面临同样的问题。

注意:此配置之前工作正常,但不知何故文件权限可能已更改,我看到此错误。我必须运行 sudo service docker restart然后可以移除容器。但这非常不方便,我不知道如何解决这个问题。

引用文件:

# docker-compose.yml
version: '3'
volumes:
db-data:
driver: local
redis-data:
driver: local
services:
db:
image: postgres:9.4.1
volumes:
- db-data:/var/lib/postgresql/data
ports:
- "5432:5432"
env_file: local_envs.env
web:
image: yattya_docker:latest
command: bundle exec puma -C config/puma.rb
tty: true
stdin_open: true
ports:
- "3000:3000"
links:
- db
- redis
- memcached
depends_on:
- db
- redis
- memcached
env_file: local_envs.env
redis:
image: redis:3.2.4-alpine
ports:
# We'll bind our host's port 6379 to redis's port 6379, so we can use
# Redis Desktop Manager (or other tools) with it:
- 6379:6379
volumes:
# We'll mount the 'redis-data' volume into the location redis stores it's data:
- redis-data:/var/lib/redis
command: redis-server --appendonly yes
memcached:
image: memcached:1.5-alpine
ports:
- "11211:11211"
clock:
image: yattya_docker:latest
command: bundle exec clockwork lib/clock.rb
links:
- db
depends_on:
- db
env_file: local_envs.env
worker:
image: yattya_docker:latest
command: bundle exec rake jobs:work
links:
- db
depends_on:
- db
env_file: local_envs.env

还有 Dockerfile:

# Dockerfile
FROM ruby:2.4.1

RUN apt-get update && apt-get install -y nodejs --no-install-recommends && rm -rf /var/lib/apt/lists/*

ENV APP_HOME /app
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME

ADD Gemfile* $APP_HOME/
RUN bundle install

ADD . $APP_HOME

RUN mkdir -p ${APP_HOME}/log
RUN cat /dev/null > "$APP_HOME/log/development.log"

RUN mkdir -p ${APP_HOME}/tmp/cache \
&& mkdir -p ${APP_HOME}/tmp/pids \
&& mkdir -p ${APP_HOME}/tmp/sockets

EXPOSE 3000

最佳答案

我从 snap 包中安装了 Docker,过了一会儿我决定转向 apt 存储库安装。

我遇到了同样的问题,使用 sudo aa-remove-unknown 对我有用。

因此无需重新安装 Apparmor。

关于ruby-on-rails - 无法停止或删除 Docker 容器 - 权限被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47223280/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com