今天用docker跑一个FastAPI程序,测试期间这个程序需要访问我本机的MySQL,但是发现访问不到,docker容器内的ip是172.17.0.1,MySQL的地址不论写localhost还是127.0.0.1或者172.17.0.1都访问不到。

其实docker容器运行的时候有hostbridgenone三种网络可供配置。默认是bridge,即桥接网络,以桥接模式连接到宿主机;host是宿主网络,即与宿主机共用网络;none则表示无网络,容器将无法联网。

from

因此只要设置为host网络即可,比如

 docker run  -it --name api_test --network host e4339467458d