/var/run/docker.sock:在 Python CGI 脚本中 运行 docker 时权限被拒绝
/var/run/docker.sock: permission denied while running docker within Python CGI script
我正在尝试 运行 Python CGI 脚本,其中我需要 运行 docker 图像。
我正在使用 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
我在 运行 宁 docker 来自 Python CGI 脚本的图像时出现以下错误:
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?"
这里有什么我遗漏的吗?
默认安装的权限被拒绝表示您正试图从 root 以外的用户或不在 docker 组中的用户访问套接字。您应该能够 运行:
sudo usermod -a -G docker $username
在您想要的 $username 上,将他们添加到组中。您需要注销并重新登录才能生效(在现有 shell 中使用 newgrp docker
,或者如果这是像您的 cgi 脚本一样访问 docker 的外部服务,则重新启动守护进程).
请注意,这样做可以有效地为该用户提供您主机上的完全根访问权限,因此请谨慎操作。
我正在尝试 运行 Python CGI 脚本,其中我需要 运行 docker 图像。 我正在使用 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
我在 运行 宁 docker 来自 Python CGI 脚本的图像时出现以下错误:
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?"
这里有什么我遗漏的吗?
默认安装的权限被拒绝表示您正试图从 root 以外的用户或不在 docker 组中的用户访问套接字。您应该能够 运行:
sudo usermod -a -G docker $username
在您想要的 $username 上,将他们添加到组中。您需要注销并重新登录才能生效(在现有 shell 中使用 newgrp docker
,或者如果这是像您的 cgi 脚本一样访问 docker 的外部服务,则重新启动守护进程).
请注意,这样做可以有效地为该用户提供您主机上的完全根访问权限,因此请谨慎操作。