docker网络
docker网络模式介绍
名称 | 说明 | 适用 |
---|---|---|
名称 | 说明 | 适用 |
container | 没有单独的ip,端口 与其他容器共享同一个网络:ip,端口等 | |
bridge | 桥接模式,容器创建时默认网络模式 容器启动时,会创建一个docker0的虚拟网桥 由虚拟网桥对网络访问进行转发,容器通过虚拟网桥与外界通信 | |
none | 无网络模式,容器不设置网络,不能与其他容器及外界进行通信 | 应用保密性较强,存储机密数据,不需要与外界通信的容器 纯数据卷容器可以设置为none |
overlay | 可以实现不同宿主机上的容器进行连接,即跨宿主机进行通信 | 同一中间件,应用的容器部署在不同主机上做集群,进行通信 |
host | 主机模式 和宿主机共享网络:ip,端口等,其他的都是隔离的 其他主机可以直接访问容器的端口 |
bridge模式
host模式
contailer模式
none模式
设置docker网络
host网络
直接指定 "--network=host" 即可
]# docker run -itd --name tomcat1 --network=host tomcat:8.5.89
容器tomcat1,与宿主机使用同一网络,即ip和端口都是宿主机的,容器没有自己的ip和端口
bridge网络
创建容器时指定网络模式
]# docker run -itd --name tomcatest1 --network=bridge --restart=always tomcat:8.5.89
指定参数:--network=bridge
容器tomcattest1设置的网络模式为bridge,由于docker网络默认为bridge,所以创建时可以不写
创建子网网络
命令:docker network create
设置一个子网,网段为192.168.0.0,为容器分配的ip地址范围是192.168.2.0-192.168.2.255,网关为192.168.2.1,桥接模式,子网名称为web1:
]# docker network create --driver=bridge --subnet=192.168.0.0/16 --ip-range=192.168.2.0/24 web1
创建容器,加入网络
创建容器时不指定ip
创建容器zabweb,设置网络为web1,不指定ip,生成随机ip:
]# docker run -itd --name zabweb --volume zabweb:/app -p8800:8800 --network=web1 centos:7
创建容器时指定ip
创建容器zabserver,设置网络为web1,指定ip为192.168.2.4:
]# docker run -itd --name zabserver --network=web1 --ip 192.168.2.4 centos:7
overlay网络
添加overlay网络过程
设置swarm集群 ==> 创建overlay网络 ==> 创建容器加入到overlay网络中
一台宿主机上 指定可附加模式
允许其他容器挂载
设置swarm集群
在一台宿主机上执行
]# docker swarm init
记住token:SWMTKN-1-18ec0dmy3nc66izfrib685g36f1mi7hrlvldye8gm13ulwq5g4-7u9tfyimhy946gvb4viq70b1k
使用2377端口进行通信
加入swarm集群
另外的宿主机上执行
]# docker swarm join --token 'SWMTKN-1-18ec0dmy3nc66izfrib685g36f1mi7hrlvldye8gm13ulwq5g4-7u9tfyimhy946gvb4viq70b1k' 172.25.230.52:2377
e8gm13ulwq5g4-7u9tfyimhy946gvb4viq70b1k:生成的token172.25.230.52:2377:连接生成token的宿主机ip及端口2377
创建overlay网络
]# docker network create --driver=overlay --subnet=192.168.0.0/16 --ip-range=192.168.2.0/24 net1
创建容器
在两台宿主机上分别创建容器web1和web2
##host1: ]# docker run -itd --name web1 --network=net1 nginx:1.24.0 ##host2: ]# docker run -itd --name web2 --network=net1 nginx:1.24.0
docker网络命令参数
参数 | 解释 | 示例 | 适用命令 |
---|---|---|---|
--subnet | 指定创建的子网网段 | --subnet 192.168.0.0/16 | docker network create |
--ip-range | 指定为容器分配的ip地址范围,一般在随机指定ip时分配 | --ip-range 192.168.2.0/24 | |
--gateway | 指定创建的子网的网关 | --gateway 192.168.2.1 | |
-d --driver | 指定网络连接模式,默认桥接bridge | -d bridge --driver overlay | |
--attachable | 指定可附加模式,允许手动将容器添加到该网络上 | ||
--network | 指定容器网络 | --network host --network overlay | |
--ip | 指定容器ip | --ip 192.168.2.10 | docker run |