【发布时间】:2019-08-23 19:39:12
【问题描述】:
我在一个虚拟机中运行 ubuntu 桌面(我的主机是 mac),在这个虚拟机中我正在用 docker-compose 试验macvlan docker 网络驱动程序。
这是我的docker-compose.yml 文件:
version: '3.7'
services:
trader:
build: ./
image: giuliotrader
container_name: giuliotrader
networks:
trading:
ipv4_address: 172.16.86.33
depends_on:
- tws
tws:
build: ./ib-docker
image: ibconnect
container_name: ibconnect
ports:
- "4001:4001"
- "4003:4003"
- "5901:5901"
volumes:
- ./ib-docker/config.ini:/root/ibc/config.ini
- ./ib-docker/gatewaystart.sh:/opt/ibc/gatewaystart.sh
networks:
trading:
ipv4_address: 172.16.86.22
networks:
trading:
driver: macvlan
driver_opts:
parent: enp0s3.10
ipam:
config:
- subnet: 172.16.86.0/24
#gateway: 172.16.86.1
我在使用这两个容器访问互联网时遇到问题。
我可以通过docker exec -it ibconnect /bin/bash访问机器,但是他们无法访问网络,如果我apt-get install iputils-ping我得到:
Temporary failure resolving 'archive.ubuntu.com'
如果我在一个容器上nc -l 5047 而在另一个容器上nc 172.16.86.22 5047 我得到Connection refused。
如果我取消注释最后一行 (gateway) docker-compose 会报错:
ERROR: The Compose file './docker-compose.yml' is invalid because:
networks.trading.ipam.config value Additional properties are not allowed ('gateway' was unexpected),
我不确定在配置网关的配置中缺少什么。如何在此设置中正确配置网络?我找不到任何像样的文档。
谢谢,
【问题讨论】:
-
是否有充分的理由进行此网络设置?通常容器在 docker 网络中运行,在这个级别不需要干预。
-
我在运行在 ibconnect 容器上的 IBGateway 服务器上出现了奇怪的行为,当它在普通容器上运行而客户端直接在主机上运行时,我没有这种行为,所以我猜测问题可能取决于 docker 的
bridge,我正在尝试让这两个容器获得一个 mac 地址并正确使用 eth 接口 -
github.com/blampe/IbPy/issues/57我在这里总结了问题,但是那个repo似乎无人看管
-
通过 docker-compose 案例适用于所有 macvlan 的有效问题。没有答案 =) 当我找到解决方案时,我会在这里发布一个。
标签: docker networking docker-compose docker-networking