在宿主机安装并启动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通。