docker 容器内访问宿主机服务

使用宿主机网络

在安装Docker的时候,会在宿主机安装一个虚拟网关docker0,我们可以使用宿主机在docker0上的IP地址来代替localhost 。

ip addr show docker0

使用host网络

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

当容器使用host网络时,容器与宿主共用网络,这样就能在容器中访问宿主机网络,那么容器的localhost就是宿主机的localhost。

在docker中使用 --network host 来为容器配置host网络:

$ docker run -d --name nginx --network host nginx