Windows主机下多Linux Docker容器组网最简方案咨询
最简解决方案:Windows下Docker多容器互通+本地主机访问配置
核心思路
用Docker自定义桥接网络实现容器间的可靠互通,同时给web容器配置仅绑定本地回环地址的端口映射,既满足Windows主机浏览器访问需求,又避免外部主机连接容器。
分步配置(命令行方式)
- 创建自定义隔离网络
docker network create dev-network
自定义桥接网络自带容器名DNS解析,容器加入后可直接通过名称互相访问,比默认bridge网络更稳定,完全适配Windows WSL2后端环境。
- 启动Redis容器(仅内部访问)
docker run -d --name redis --network dev-network redis:latest
无需映射端口,仅允许同一网络内的web容器访问。
- 启动MySQL容器(仅内部访问)
docker run -d --name mysql --network dev-network -e MYSQL_ROOT_PASSWORD=dev_pass mysql:latest
设置数据库密码,同样不对外暴露端口,仅内部容器可访问。
- 启动Web容器(绑定本地端口)
docker run -d --name web --network dev-network -p 127.0.0.1:80:80 -p 127.0.0.1:443:443 your-web-image:latest
127.0.0.1:是关键配置,确保仅Windows本机能通过localhost:80/localhost:443访问web服务,外部主机无法连接这些端口。- 替换
your-web-image:latest为你的web应用镜像。
更简洁的Docker Compose方案(推荐开发环境)
创建docker-compose.yml文件:
version: '3.8' services: redis: image: redis:latest networks: - dev-network mysql: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: dev_pass networks: - dev-network web: image: your-web-image:latest ports: - "127.0.0.1:80:80" - "127.0.0.1:443:443" networks: - dev-network networks: dev-network: driver: bridge
启动所有容器:
docker-compose up -d
验证配置
- 容器间互通:进入web容器,执行
ping redis或mysql -h mysql -u root -p,确认能正常连接Redis和MySQL。 - 主机访问:打开Windows浏览器,访问
http://localhost或https://localhost,验证web服务可正常访问。
内容的提问来源于stack exchange,提问作者Ed Greenberg
相关产品推荐
相关产品推荐

