我在一个虚拟机中运行ubuntu桌面(我的主机是mac),在这个虚拟机中我正在试验macvlan
docker网络驱动程序和docker-compose。
下面是我的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),
我不确定我在配置网关时遗漏了什么。我怎样才能在这个设置中正确地配置网络?我找不到任何像样的文档。
谢谢你,
3条答案
按热度按时间hsvhsicv1#
我遇到了同样的问题与MacBook Pro。原因可能是一个
macvlan
子接口被无线接口阻止。当我连接到计算机的LAN电缆,并更改VM的网络适配器从en0: WiFi
到enX: USB 10/100/1000 LAN
,一切都开始按预期工作。另一个解决方案是使用
ipvlan
而不是macvlan
。我的设置:
G
: 172.16.1.1/16 - Gateway(Physical)M
: 172.16.1.20/16 - Macbook Pro, [en0: Wifi(Physical), en7:LAN (Phsical)]V
: 172.16.1.180/16 - Virtualbox + Ubuntu Server 20.04 [enp0s3 (Virtual)]C1
: 172.16.180.53/16 - Docker container inhome_macvlan
C2
: 172.16.180.80/16 - Docker container inhome_macvlan
哪些不起作用
1-将虚拟机的网络适配器
en0:WiFi
设置为Bridged Adapter
,在V
中使用Docker创建macvlan
状态:
M
<->V
[OK]C1
<->C2
[OK]V
<->C1
[NOK] (As expected)M
<->C1
[NOK] (The issue)C1
<->G
[NOK] (The issue)什么有效
1-使用
ipvlan
代替macvlan
en0:WiFi
设置为Bridged Adapter
V
中使用docker创建ipvlan
我用来创建
ipvlan
的命令如下:然后运行Docker容器:
2-在非802.11接口上使用
macvlan
enX: USB 10/100/1000 LAN
(或其他非802.11接口)设置为Bridged Adapter
PCnet-Fast III (Am79C973)
作为适配器类型用于创建
macvlan
的命令运行容器的命令:
相关答案:https://stackoverflow.com/a/56918457/860189
更多信息:https://hicu.be/macvlan-vs-ipvlan
1sbrub3j2#
vh0rcniy3#
在码头主机