我想配置一个网关来连接两个容器。以下是一个创建三个容器的示例组合文件——test_client、test_server和proxy。代理服务器应该作为所有从test_client到test_server的流量的默认网关。我使用的是组合文件格式v2,因为IPAM网关配置在v3中不受支持。
version: "2"
services:
proxy:
build: .
cap_add:
- NET_ADMIN
expose:
- 8080
- 80
- 443
networks:
client_network:
ipv4_address: '192.168.0.5'
server_network: null
stdin_open: true
tty: true
test_server:
build: ./test_server
expose:
- 8000
networks:
- server_network
test_client:
build: ./test_client
networks:
- client_network
stdin_open: true
tty: true
networks:
client_network:
driver: bridge
ipam:
driver: default
config:
- subnet: "192.168.0.0/24"
gateway: "192.168.0.5"
server_network:
driver: bridge
当我运行
docker-compose up
时,出现以下错误:ERROR: for 28e458cec9ac_network_proxy_1 b'user specified IP address is supported only when connecting to networks with user configured subnets'
我阅读了以下资源: SO: docker container as gateway between two docker bridges Docker forums 但它们似乎不能帮助我回答如何设置这个问题。我没有承诺任何特定的网络结构 - 我想要的唯一是配置一个容器作为两个其他容器之间的网络级网关。
192.168.5.0/24
看看是否有所改变? - NicolasBdocker network inspect client_network
检查一下。如果是这种情况,请勿使用“docker network rm”删除它,否则会破坏很多东西(我刚刚发现了这个问题),似乎应该通过docker-compose down
删除网络...参见:https://github.com/docker/compose/issues/5745#issuecomment-370031631(我没有测试过,选择了错误的方法) - mozzbozz