Docker уничтожение контейнера "разрешение отклонено" из-за AppArmor. Просто почему? - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь уничтожить контейнеры, запущенные через docker-compose. При изящной остановке (Ctrl + C) или docker-compose down я сталкиваюсь со следующей ошибкой:

ERROR: for <container-name>  cannot stop container: b60c1c4d886899504b...2a022e4d39429dc6ca6e4784afdd: Cannot kill container b60c1c4d886899504b...2a022e4d39429dc6ca6e4784afdd: unknown error after kill: runc did not terminate sucessfully: container_linux.go:388: signaling init process caused "permission denied"
: unknown

Я просто ищу ответ ПОЧЕМУ . Я пытаюсь понять AppArmor лучше, но понимаю ПОЧЕМУ Я не могу остановить контейнеры, пока все не поможет понять, что происходит.

Я вижу, что это ошибка, с которой сталкиваются многие люди , 1 2 3 4 Однако большинство ответов предлагают обходные пути, а не решения . Даже пояснительные ответы типа 1 погружаются прямо в AppArmor и профили. Из документации docker я вижу, что docker имеет политику AppArmor по умолчанию docker-default. Я частично понимаю концепцию, но все равно не понимаю ПОЧЕМУ Я не могу остановить контейнеры через пользователя и среду, в которой я их запустил.

Если я попытаюсь обернуть свои вопросы:

  • Я запустил несколько контейнеров как пользователь, ПОЧЕМУ я не могу их остановить. sudo тоже не работает. Кто может их остановить?
  • Нужен ли мне профиль AppArmor для каждого контейнера?
  • Не думаю, что было бы хорошей идеей перезапустить AppArmor или отключить его. Должен ли я сделать это? Какое идеальное решение?

Любые отзывы или объяснения приветствуются. Спасибо.

1 Ответ

0 голосов
/ 24 марта 2020

Я не мог найти точную причину, но подошел ближе. Кажется, на моем Ubuntu 19.10 были конфликтующие установки docker, и это вызывало проблему контроля доступа.

Как указано здесь , я удалил установку моментальных снимков. Поскольку у меня уже была другая установка, мне не пришлось устанавливать ее другим способом.

sudo snap remove docker
...