Php Docker:无法在容器之间通信

Php Docker:无法在容器之间通信,php,node.js,docker,nginx,proxy,Php,Node.js,Docker,Nginx,Proxy,我有一个Docker设置,其中包含一个php fpm容器、一个节点容器和一个作为代理的nginx容器。现在在browser()中,php容器像我预期的那样使用json进行响应。一切都好。但是,当我从节点容器向这个php容器()发出请求时,我在请求中得到一个错误:ECONNRESET。显然,节点容器无法与php容器通信。nginx错误似乎没有添加条目 Error: read ECONNRESET at _errnoException(util.js: 1031: 13) at TCP.onread

我有一个Docker设置,其中包含一个php fpm容器、一个节点容器和一个作为代理的nginx容器。现在在browser()中,php容器像我预期的那样使用json进行响应。一切都好。但是,当我从节点容器向这个php容器()发出请求时,我在请求中得到一个错误:
ECONNRESET
。显然,节点容器无法与php容器通信。nginx错误似乎没有添加条目

Error: read ECONNRESET at _errnoException(util.js: 1031: 13) at TCP.onread(net.js: 619: 25)
errno: 'ECONNRESET',
code: 'ECONNRESET',
syscall: 'read'
有什么想法吗

我已经进行了github回购:

修剪版

修剪版

给出错误的请求

const response = await axios.get('http://php-fpm:9000');
如何繁殖

  • 查找swarm manager节点的ip地址(通常
    192.168.99.100
    ):
    docker machine ip manager
    docker machine ls
    。通过添加
    192.168.99.100 project.dev
    192.168.99.100 api.project.dev
    编辑主机文件(在Mac上,
    sudo vi/private/etc/hosts
  • git克隆https://github.com/thomastilkema/docker-nginx-php-fpm-node 项目
  • cd项目。/scripts/up.sh
  • 查看容器的日志:
    docker日志-f

ECONNRESET
是关闭连接的另一端,这通常可归因于协议错误

FastCGI进程管理器(FPM)使用协议传输数据

通过nginx容器,它将HTTP请求转换为FastCGI

axios.get('http://nginx/whatever.php')

谢谢Matt,这确实解决了我的问题。我现在得到了预期的回应。
FROM php:7.1-fpm-alpine

WORKDIR /var/www

EXPOSE 9000

CMD ["php-fpm"]
const response = await axios.get('http://php-fpm:9000');
axios.get('http://nginx/whatever.php')