症状
docker stopやdocker compose downでコンテナを停止できない。
Error response from daemon: cannot stop container: <id>: permission denied
解決
AppArmorを一時停止してからコンテナを停止する。
sudo systemctl stop apparmor
docker stop <container> # または docker compose down 等
sudo systemctl start apparmor
原因
Dockerデーモンの再起動やシステムアップデート後にAppArmorの古いプロファイルが残り、コンテナへのシグナル送信がブロックされる。AppArmorを停止すると、このプロファイルによるアクセス制御が無効になるため、Dockerがコンテナを正常に停止できるようになる。