docker自动创建的网络
docker启动后,执行ifconfig
,可看到多了一个桥接网络-docker0
。
|
|
默认的inet
应该是172.17.0.1
,我这里是因为修改了docker的启动参数bip
,可参考docker的启动参数配置.
执行docker network ls
,可以看到docker默认新建了3个网络:
|
|
运行2个容器:
|
|
再执行ifconfig
查看,新增了两个虚拟网卡:
|
|
进入容器内部查看:
|
|
docker引擎为容器分配了虚拟网络设备eth0
,正好了主机上ifconfig
中新增的两个网络设备对应,同时分配了bip
网段的ip。
通过新增的这两个虚拟网络设备和docker0
形成网络通道,能让容器和主机互联。
通过docker run
的-p
参数可将容器内部端口映射到主机端口,访问主机端口即相当与访问对应容器端口。
docker的none网络
即不使用网络,docker不为容器分配虚拟网络设备和虚拟ip。
使用方式:docker run --net=none ...
docker的host网络
即直接使用主机的网络,网络配置与主机一毛一样。
使用方式:docker run --net=host ...
docker的container网络
即使用已存在的容器网络作为新建容器的网络,即多个容器共用一个虚拟网络(包括虚拟网络设备和虚拟IP完全一致)。
使用方式:docker run --net=container:容器名 ...
docker的自定义bridge网络
之前默认bip和网络代理冲突时我们采取了修改bip来避免冲突,其实还有另外一种方法,即用户可自定义一个bridge网络,然后新建容器指定bridge为用户新建网络。
新建网络命令:
|
|
使用方式:docker run --net=my_network ...