以nginx身份运行Docker


Docker Permission Denied run docker as nginx

<?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之外,还有其他解决方案吗?

文档中提取

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

"为了避免在使用docker命令时使用sudo,请创建一个名为docker的Unix组并向其中添加用户。当docker守护进程启动时,它使Unix套接字的所有权由docker组读/写。"

你可以试试

如果您需要以非root用户运行docker命令:尝试如下a.创建用户'docker' -> #adduser docker, passwd dockerb.添加组docker -> groupadd dockerc. sudo usermod -aG docker

在/etc/sudoers中添加条目%sudo All=(All: All) All | %sudo All=(All: All) All