如何让Colima虚拟机容器与Mac主机Docker容器实现互通?
M1 Mac主机Docker容器与Colima容器互通方案
主机Docker和Colima是独立的Docker守护进程,分别运行在本地和Colima虚拟机中,默认网络隔离。要实现双方容器IP互相ping通,按以下步骤操作:
步骤1:切换Colima到桥接网络模式
默认NAT模式下虚拟机与主机不在同一网段,无法直接路由。切换为桥接模式让Colima接入本地局域网:
- 停止Colima:
colima stop - 启动并指定桥接网络:
colima start --network bridge - 查看Colima虚拟机IP:
colima status,记录该IP(例如192.168.1.100)
步骤2:配置双向路由
假设主机Docker容器默认网段为172.17.0.0/16,Colima容器默认网段为172.18.0.0/16(实际网段以docker inspect结果为准):
在主机终端执行
添加路由,将Colima容器网段的流量指向Colima虚拟机:
sudo route add -net 172.18.0.0/16 192.168.1.100
在Colima虚拟机中执行
先通过colima ssh进入Colima虚拟机,再执行以下命令开启IP转发并添加路由(主机局域网IP示例为192.168.1.5):
sudo sysctl -w net.ipv4.ip_forward=1 echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf sudo route add -net 172.17.0.0/16 192.168.1.5
步骤3:验证互通
- 在主机Docker容器内,ping Colima容器IP:
ping <COLIMA_CONTAINER_IP> - 在Colima容器内,ping主机Docker容器IP:
ping <HOST_CONTAINER_IP>
常见问题排查
- 如果ping不通,临时关闭Colima虚拟机防火墙测试:
sudo iptables -F - 确认主机防火墙未阻止Docker网段与Colima网段的流量
- 若容器网段不是默认的
172.17.x.x/172.18.x.x,替换为实际网段
内容的提问来源于stack exchange,提问作者phillanthropistcoder
相关产品推荐
相关产品推荐

