【发布时间】:2019-07-27 13:26:29
【问题描述】:
我正在运行一个运行 exec() 函数来运行 docker 容器的 php 脚本。
我通过 php 回显我的用户
exec("whoami 2>&1",$out);
var_dump($out);
它显示了守护进程。 我想运行的代码是:
exec("docker run --rm -d -i -t -v ".$targetPath.":/user threed sh /user/test.sh 2>&1",$out);
var_dump($out);
但我得到的错误是
string(237) "docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create: dial unix /var/run/docker.sock: connect: permission denied." [2]=> string(24) "See 'docker run --help'. "
谁能帮我从我的 php 脚本中运行 docker 容器。
【问题讨论】:
-
我试过但是 sudo chown "$USER":"$USER" /home/"$USER"/.docker -R sudo chmod g+rwx "/home/$USER/.docker" - R 用什么代替用户??
-
可能感兴趣的是看看github.com/docker-php/docker-php。这为 PHP 带来了一个 API,允许您控制 Docker。
-
nos 它给我的应用增加了很多负担
-
是的,那部分已经消失了,我阅读了官方文档,上面写着要解决这个问题,要么删除 ~/.docker/ 目录(它会自动重新创建,但所有自定义设置都会丢失),