配置代理后Docker容器无法互通的问题求助
问题解决:配置Docker代理后容器间无法互通
核心原因
你配置的Docker代理noProxy列表未包含自定义网络simas_net的相关地址或标识,导致容器间的内部请求被错误转发到代理服务器,进而无法正常互通。
解决方案
1. 更新Docker代理配置文件
修改~/.docker/config.json中的noProxy字段,加入以下内容之一或全部:
- 自定义网络
simas_net的子网(推荐) - 容器名称(
membership_service、nginx_proxy) - 自定义网络名称(
simas_net)
修改后的配置示例:
{ "proxies": { "default": { "httpProxy": "http://192.168.49.1:8000/", "httpsProxy": "http://192.168.49.1:8000/", "noProxy": "localhost,127.0.0.0/8,simas_net,membership_service,nginx_proxy" } } }
获取自定义网络子网的方法:
执行以下命令查看simas_net的子网信息:
docker network inspect simas_net | grep Subnet
将输出的子网(如172.20.0.0/16)添加到noProxy列表即可。
2. 重启Docker服务
修改配置后必须重启Docker服务让配置生效:
- Linux系统:
systemctl restart docker
- Docker Desktop:在应用界面点击重启按钮。
3. 优化docker-compose配置(可选)
建议将network_mode: simas_net改为标准的networks定义方式,更符合Docker Compose规范:
version: '3.7' services: membership: container_name: membership_service build: context: ./membership target: dev ports: - 6010:6010 volumes: - ./membership:/app networks: - simas_net proxy: container_name: nginx_proxy build: context: ./proxy target: dev ports: - 8000:80 volumes: - ./proxy/config:/etc/nginx/conf.d networks: - simas_net networks: simas_net: external: true # 若该网络已提前创建则保留,否则删除此让Compose自动创建
内容的提问来源于stack exchange,提问作者Umar
相关产品推荐
相关产品推荐

