docker启动容器之后,浏览器访问应用报错getaddrinfo EAl AGAlN loalhost

60 阅读1分钟

背景

有两个容器:

第一个容器名叫dify-nginx,宿主机和容器的端口映射情况是8500:80

第二个容器名叫afterslae-app,宿主机和容器的端口映射情况是3000:3000

现在浏览器通过localhost:3000访问afterslae-app,afterslae-app容器内部访问dify-nginx

问题重现

docker启动容器之后,浏览器访问应用报错getaddrinfo EAl AGAlN dify-nginx

原因

第一、aftersale-app中配置的url地址有问题

更改前:

NEXT_PUBLIC_API_URL=http://dify-nginx:8500/v1

更改后:

NEXT_PUBLIC_API_URL=http://dify-nginx:80/v1

第二、两个容器不在同一个网络中

创建网络

docker network create <网络名>

加入网络

docker run ... --network <网络名>

检查容器是否能够正常通信

进入某一容器内部 docker exec -it <容器名> bash

ping <容器名>

原理讲解

容器间通信:在Docker网络中,容器间通信应该使用容器内部的端口(80),而不是主机映射的端口(8500)