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