在 Docker 环境中,容器默认使用 桥接网络(bridge),宿主机和容器之间的通信会受到防火墙(如 ufw
)的限制。当你执行 sudo ufw allow from 172.0.0.0/8
后,容器可以访问宿主机上的服务,原因如下:
1. Docker 默认使用 172.x.x.x
网段
Docker 默认会创建一个 docker0
网桥,并给容器分配 172.17.0.0/16
的 IP(例如 172.17.0.2
)。
当你运行:
docker exec -it dify-plugin_daemon-1 bash
容器内的网络属于 172.x.x.x
网段,而 ufw
默认会阻止外部(包括容器)访问宿主机的服务。