【发布时间】:2021-04-22 04:27:25
【问题描述】:
尝试在 Nginx 下从 php 运行 docker exec 我得到以下错误:
在尝试连接到位于unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/konfetki_db_1/json: dial unix /var/run/docker.sock: connect: permission denied 的 Docker 守护程序套接字时获得权限被拒绝
这可以从命令行工作,但它说permission denied,而我正在尝试使用 www-data 而不是 root 从 nginx 下的 php 运行。
有什么方法可以运行吗?
【问题讨论】:
-
运行 php 的用户无权访问
docker组,请按照以下指南操作:stackoverflow.com/questions/48957195/… 但不要使用您自己的用户,而是添加运行 php 的用户。如果您不知道,<?php echo exec('whoami'); ?>将完成这项工作。 -
如果您可以运行任何
docker命令,那么root 整个主机非常容易。我鼓励您重新构建您的应用程序,使其不需要直接运行docker命令,并避免使用docker exec,除了偶尔的调试任务。