Los Contenedores Docker no pueden ser detenidos ni eliminados – permiso denegado Error

Problema : no puedo detener los contenedores de docker, cada vez que trato de detener los contenedores recibo el siguiente post de error:

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

Versión / compilation del sistema operativo: Ubuntu 16.04 | Docker Version 17.09.0-ce, build afdb6d4 | Docker Compose versión 1.17.1, compilation 6d101fb

Pasos para reproducir:

  • Creó un proyecto de Rails con Dockerfile y docker-compose.yml. docker-compose.yml es de la versión 3.
  • La image se construye correctamente con cualquiera de las docker build -t <project name> . o docker-compose up --build
  • Los contenedores se inician y se ejecutan con éxito.
  • Intenta detener la networkingacción de Docker con docker-compose down.

Lo que probé :

  • Tengo que ejecutar sudo service docker restart y luego los contenedores se pueden eliminar.
  • Docker desinstalado, eliminado el directory del acoplador y luego reinstalado todo. Todavía enfrenta el mismo problema.

Nota : Esta configuration funcionaba correctamente antes, pero de alguna manera los permissions de files pueden haber cambiado y estoy viendo este error. Tengo que ejecutar sudo service docker restart y luego los contenedores se pueden eliminar. Pero esto es muy inconveniente y no sé cómo solucionarlo.

Archivos de reference:

 # docker-compose.yml version: '3' volumes: db-data: driver: local networkingis-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 - networkingis - memcached depends_on: - db - networkingis - memcached env_file: local_envs.env networkingis: image: networkingis:3.2.4-alpine ports: # We'll bind our host's port 6379 to networkingis's port 6379, so we can use # Redis Desktop Manager (or other tools) with it: - 6379:6379 volumes: # We'll mount the 'networkingis-data' volume into the location networkingis stores it's data: - networkingis-data:/var/lib/networkingis command: networkingis-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 

Y 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 

Pude solucionar el problema. El service Apparmor en ubuntu no funcionaba normalmente debido a algún problema desconocido. El problema era similar al problema informado en el proyecto de moby https://github.com/moby/moby/issues/20554 .

La carpeta /etc/apparmor.d/tunables estaba vacía, y https://github.com/mlaventure sugirió purgar / reinstalar apparmor para pasar al estado inicial.

Entonces volví a instalar Apparmor, y después de reiniciar el problema fue resuelto.

Espero que esto ayude.