四种基础网络类型:

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

Categories: docker&k8s

0 Comments

发表评论

Avatar placeholder

邮箱地址不会被公开。 必填项已用*标注