四种基础网络类型:
bridge 桥接模式(默认),nat模式
host 与宿主机公用一个网络,网络性能最高
container (k8s中常用),与其他容器共用一个网络
none 不使用任何网络
一、macvlan网络,类似与虚拟机的桥接网络
分别在2台docker宿主机上创建指定网络段
[root@docker02 ~]# docker network create -d macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.2 -o parent=eth0 macvlan_1
2a0a97de78840fb41e3b9cd62b525a3b763f890548c42701a8d509367122c732
[root@docker01 ~]# docker network create -d macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.2 -o parent=eth0 macvlan_1
e45b601fb64b3a70c93fc2bf4432ac1a38b8e635447eefb28869f7f3baff4933
指定ip进入到容器中
[root@docker02 ~]# docker run -it --network macvlan_1 --ip 10.0.0.107 alpine:latest
/ #
[root@docker01 ~]# docker run -it --network macvlan_1 --ip 10.0.0.108 alpine:latest
/ #
互ping测试网络
/ # ping 10.0.0.108
PING 10.0.0.108 (10.0.0.108): 56 data bytes
64 bytes from 10.0.0.108: seq=0 ttl=64 time=1.434 ms
64 bytes from 10.0.0.108: seq=1 ttl=64 time=0.995 ms
^C
--- 10.0.0.108 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.995/1.214/1.434 ms
二、overlay网络,让宿主机之间有关联
启动progrium/consul镜像的容器
[root@docker03 ~]# docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
6995dea78f35fb0f0eb5b1f65fefaa080908c2e7b5a340c878a74712cf87f090
改docker01、docker02的配置信息,添加注册信息
[root@docker01 ~]# cat /etc/docker/daemon.json
{
"cluster-store": "consul://10.0.0.13:8500",
"cluster-advertise": "10.0.0.11:2376"
}
[root@docker01 ~]# systemctl restart docker
[root@docker02 ~]# cat /etc/docker/daemon.json
{
"cluster-store": "consul://10.0.0.13:8500",
"cluster-advertise": "10.0.0.12:2376"
}
[root@docker02 ~]# systemctl restart docker
在一个节点创建网络,其为全局网络,所有节点都会生效
[root@docker01 ~]# docker network create -d overlay --subnet 172.26.0.0/16 --gateway 172.26.0.1 ol1
f48b61c3ddb07159ab8d7d8db11e38cd379e19c250a958deae39e515b22a247f
查看
[root@docker01 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
492fe23fdd87 bridge bridge local
8b285510ae1d docker_gwbridge bridge local
70ed58fd242c host host local
e45b601fb64b macvlan_1 macvlan local
9bb7dec3bbb0 none null local
f48b61c3ddb0 ol1 overlay global
启动测试,容器名不能重复
[root@docker02 ~]# docker run -it --network ol1 --name test1 alpine:latest /bin/sh
/ #
[root@docker01 ~]# docker run -it --network ol1 --name test2 alpine:latest /bin/sh
/ #
/ # ping test1
PING test1 (172.26.0.2): 56 data bytes
64 bytes from 172.26.0.2: seq=0 ttl=64 time=39.425 ms
64 bytes from 172.26.0.2: seq=1 ttl=64 time=1.206 ms
^C
--- test1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 1.206/20.315/39.425 ms
0 Comments