背景
有两个容器:
第一个容器名叫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)