在宿主机安装并启动docker后,会自动创建3个docker network:bridge、host、none。可以用docker network ls命令查看。

用docker network inspect bridge、docker network inspect host、docker network inspect none命令查看各docker network,会发现只有bridge有网段,假如是

{
    "Subnet":"192.168.10.0/24",
    "Gateway":"192.168.10.1"
}

在宿主机上执行ifconfig命令,可以发现有一个docker0网卡,注意观察其网段和docker network inspect bridge的网段是一致的,宿主机在此网段下也分配了一个ip,一般是网段中的第一个ip,假如是192.168.10.1。

1)假如用默认的bridge模式启动容器,即在启动时不指定network参数或者指定了--network bridge,

在容器中执行ifconfig命令,可以发现容器的ip也在上面的网段中,假如是192.168.10.2。

在容器中,ping 192.168.10.1,可以ping通。在宿主机中ping 192.168.10.2,可以ping通。

在容器中,可以用192.168.10.1:port的方式访问宿主机的服务。

2)假如容器用host网络模式启动,即在启动时添加了--netwok host参数,

那么容器会和宿主机共享网络,直接telnet 127.0.0.1 8000可以telnet通。