Docker权限被拒绝运行docker作为nginx

时间:2015-07-31 03:59:43

标签: php nginx docker

<?php
error_reporting(-1);
ini_set('display_errors', '1');
$code = addslashes($_GET['code']);
echo shell_exec("/usr/bin/docker exec d6ebc1b02e76 perl -e \"$code\" 2>&1");

从nginx执行此PHP脚本时,我得到以下内容:

time="2015-07-30T23:46:03-04:00" level=fatal 
msg="Post http:///var/run/docker.sock/v1.18/containers/d6ebc1b02e76/exec: dial 
unix /var/run/docker.sock: permission denied. Are you trying to connect to a 
TLS-enabled daemon without TLS?" 

除了给nginx sudo访问docker之外还有其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

中的文档摘录

https://docs.docker.com/installation/ubuntulinux/#optional-configurations-for-docker-on-ubuntu

“为了避免在使用docker命令时必须使用sudo,创建一个名为docker的Unix组并向其添加用户。当docker守护程序启动时,它使得docker group的Unix套接字的所有权可读/写。“

你可以试试

答案 1 :(得分:0)

如果您需要以非root用户身份运行docker命令:请尝试这样做 一个。创建用户&#39; docker&#39; - &gt; #adduser docker,passwd docker 湾添加组泊坞窗 - &gt; groupadd码头 C。 sudo usermod -aG docker docker

注意向/ etc / sudoers添加条目 %sudo All =(ALL:ALL)ALL | %sudo All =(ALL:ALL)ALL