docker自带的网络模式有bridge
,none
,host
,
docker network ls
#查看docker网络
一、bridge模式
docker的默认模式,docker进程第一次启动会创建一个docker0虚拟网桥,
此宿主机上启动的容器会默认连接到这个网桥上,容器通过这块网桥NAT访问外部网络,
当执行docker run 加入-p参数是,实际是在iptables中加入了对应的DNAT端口转发规则。
二、host模式
host模式的容器跟宿主机共用一个namespace,拥有一样的IP和路由,因此容器内的服务端口不能跟宿主机相同
三、none模式
none模式创建的容器没有添加网卡,需要自行配置
四、container模式
container模式创建一个跟指定容器共用网络的新容器
1. docker的三种原生网络
查看三种原生网络
可以看到容器的宿主机server1上面多了一个网桥接口
,这个桥接接口供容器和外界通信
类似于物理机和虚拟机的关系,虚拟机要上网就得通过物理机才可以
(1)bridge模式
运行一个容器
可以看到这个容器的ip与桥接接口在一个网段,并且ip地址以网桥ip为基础递增,以网桥ip为网关
开启容器的时候宿主机就能ping通容器
以上就是基本的bridge模式,一般开启的容器默认使用的也是这种网络模式
注意:bridge模式只有宿主机才能与运行在其上面的容器进行通信
记住以下几点就可以:
宿主机上有桥接接口,上面有IP
开启的容器会自动分配和IP在一个网段的ip地址,并且开启的容器的ip以IP为基础递增
关闭容器之后,ip会自动释放
(2)host模式
以host模式运行一个容器vm1