web-dev-qa-db-ja.com

/var/run/docker.sock:Python CGIスクリプト内でdockerを実行中にアクセスが拒否されました

Python CGIスクリプトを実行し、その内部でdocker imageを実行する必要があります。Dockerバージョン1.6.2を使用しています。ユーザーは「www-data」で、dockerグループに追加されています。

www-data : www-data Sudo docker 

マシンでは、www-dataを使用してdockerコマンドを実行できます

www-data@mytest:~/html/new$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Python CGIスクリプトからDockerイメージを実行中に次のエラーが発生します:

fatal msg="Get http:///var/run/docker.sock/v1.18/images/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?" 

ここで見逃しているものはありますか?

10
user5154816

デフォルトのインストールで拒否されたアクセス権は、root以外のユーザーまたはdockerグループにないユーザーからソケットにアクセスしようとしていることを示します。実行できるはずです:

Sudo usermod -a -G docker $username

目的の$ usernameでグループに追加します。これを有効にするには、ログアウトして再度ログインする必要があります(既存のシェルでnewgrp dockerを使用するか、これがcgiスクリプトのようなドッカーにアクセスする外部サービスの場合はデーモンを再起動します)。

これを効果的に行うと、そのユーザーにホストでの完全なrootアクセス権が与えられることに注意してください。これには注意が必要です。

19
BMitch