Php Docker:无法在容器之间通信
我有一个Docker设置,其中包含一个php fpm容器、一个节点容器和一个作为代理的nginx容器。现在在browser()中,php容器像我预期的那样使用json进行响应。一切都好。但是,当我从节点容器向这个php容器()发出请求时,我在请求中得到一个错误: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
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
编辑主机文件(在Mac上,192.168.99.100 api.project.dev
)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')