Dockerコンテナを殺すことも停止することもできません。非特権ユーザーにDockerコマンドの実行を許可しました。 docker run hello-world
は正常に機能します。しかし、他のコンテナを止めることはできません。
私は次のようになりました:
$ docker stop 59e3b815d1dc
Error response from daemon: cannot stop container: 59e3b815d1dc:
Cannot kill container 59e3b815d1dcf2d8c8bcd3dd641c3c033b83ac68ea2f0257a32a76468af7374c:
unknown error after kill: docker-runc did not terminate sucessfully:
container_linux.go:393: signaling init process caused "permission denied"
: unknown
須藤と同じエラー。その間、すべてのコンテナは正常に実行されますが、それらを停止するにはシステムの完全な再起動のみが可能です。
Docker作成例:#postgres/exampleユーザー/パスワード認証情報バージョンを使用: '3.1'
services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8080:8080
Docker情報:
$ docker info
Containers: 7
Running: 2
Paused: 0
Stopped: 5
Images: 10
Server Version: 17.12.1-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge Host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-116-generic
Operating System: Ubuntu 16.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 11.61GiB
Name: peter-pen
ID: P6FS:C76H:WIAO:LCWC:TCHT:JEYB:6W3M:HXYD:S4E2:KTUZ:2T3Q:3GPI
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No swap limit support
AppArmor作品から未知のものを削除する私にとって:
Sudo aa-remove-unknown
AppArmor(Application Armor)は、オペレーティングシステムとそのアプリケーションをセキュリティの脅威から保護するLinuxセキュリティモジュールです。これを使用するには、システム管理者がAppArmorセキュリティプロファイルを各プログラムに関連付けます。 Dockerは、AppArmorポリシーがロードされて適用されることを期待しています。デフォルトのプロファイルを確認するには:
# Sudo apparmor_status
コンテナーでdocker defaultプロファイルを使用するには、次を実行します:
$ docker run --rm -it --name test-container --security-opt apparmor=docker-default image-name
次のコマンドを使用して無効にします。
--security-opt apparmor=unconfined
Dockerでコマンドを実行します。
Apparmorサービスを無効にするには、次を使用します。
# systemctl stop apparmor && systemctl disable apparmor
Ubuntu 14の場合:
# service apparmor stop
# update-rc.d -f apparmor remove
Docker apparmorの作業プロファイルを無効にするよりも、特に本番環境で設定することをお勧めします。
AppArmorによるコンテナの保護に関するこの素晴らしいGoogleドキュメントを確認してください。
https://cloud.google.com/container-optimized-os/docs/how-to/secure-apparmor
このコマンドは、すべてのdockerコンテナーを停止します。
Sudo killall docker-containerd-shim
このコマンドは、すべてのdockerコンテナーを削除します。
Sudo docker-compose down