【问题标题】:How to run docker exec from php?如何从 php 运行 docker exec?
【发布时间】: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,除了偶尔的调试任务。

标签: php docker


【解决方案1】:

我通过这个解决了问题:

Add docker group
$ sudo groupadd docker
Add your current user to docker group
$ sudo usermod -aG docker www-data
Switch session to docker group
$ newgrp - docker
Run an example to test
$ docker run hello-world

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2020-11-15
    • 2015-02-23
    相关资源
    最近更新 更多