orbstack容器网络自定义

OrbStack 是一款优秀的 Docker Desktop 替代品,它具有快速、轻量、简单易用等优点,可以帮助开发者在 macOS 上更高效地运行容器和 Linux 虚拟机。

doc

问题

env

  • orbstack
  • macbook-pro-15.3

docker info 发现一堆的container pool自定义,强迫症….
664e4d804c5a8437d7d6872dd9ed50de.png

orbstack架构
021b2df714f9ca223ebce229b2f5444a.png

Containers and machines are connected to unified bridge networks

解决

1.清理已存在自定义网络

调整容器IP Pool,导致已存在自定义网络无法启动,进而导致docker无法正常拉起

orb logs docker
...
Failed to release address pool LocalDefault/invalid Prefix after failure to create network pg17_default 
➜  config docker network ls
NETWORK ID     NAME           DRIVER    SCOPE
44f8b37bc313   bridge         bridge    local
e50cc2e40105   host           host      local
4c914aa35b23   none           null      local
43c9a64997d0   pg17_default   bridge    local
➜  config docker network rm 43c9a64997d0

2.临时关闭容器网络访问

99bf5a55bf8ae8973270f46ee5e79c59.png

3.调整docker.json配置

~/.orbstack/config/docker.json

1
2
3
4
5
...
"bip": "192.168.97.1/24",
"default-address-pools": [
{"base": "192.168.97.0/24", "size": 120}
]

size 看着是从子网中取一部IP作为容器IP,不明其然

4.重启网络及开启容器网络访问

//重启容器
orb restart  docker

//观察是否有异常阻断日志
orb logs docker

allow container access
2f287b4d97ee5bf10d067000e52280fd.png

linux vm bridge && container bridgebb15b92ce8a6ad65d98196b11095a602.png

5.验证

➜  ~ ping orb.local
PING orb.local (198.19.249.1): 56 data bytes
64 bytes from 198.19.249.1: icmp_seq=0 ttl=64 time=0.432 ms
64 bytes from 198.19.249.1: icmp_seq=1 ttl=64 time=0.794 ms
^C


➜  config docker inspect doc |grep -i address 
            "LinkLocalIPv6Address": "",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "GlobalIPv6Address": "",
            "IPAddress": "192.168.97.2",
            "MacAddress": "02:42:c0:a8:61:02",
                    "MacAddress": "02:42:c0:a8:61:02",
                    "IPAddress": "192.168.97.2",
                    "GlobalIPv6Address": "",