只需要在docker内部配置数据库的host为docker对外的虚拟ip,port为宿主机数据库的端口,这样就能在docker内部使用宿主机的数据库了。
通过ifconfig命令查看所有网口,可以看到有个docker0的网口,它的IP是172.17.0.1,这就是docker容器默认的网关。
在需要连接宿主机数据库的地方配置上docker0网口对应的ip,和宿主机数据库的端口就可以了。
当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,每一个容器会从docker0子网中分配到一个IP,并设置docker0的IP地址为容器的默认网关。所以docker内部容器想要访问宿主机上的服务都要通过docker0这个网口去访问。