我正在运行一个PHP脚本,该脚本运行exec((函数以运行Docker容器。
i通过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容器。
问题与运行PHP代码的用户有关。首先,您需要确定哪个用户正在运行PHP代码。是您的用户吗?,是php-fpm吗?www-data?之后,您需要将该用户添加到Docker用户组中。有关此此信息的更多信息:https://docs.docker.com/install/linux/linux-postinstall/