一、查看docker的网络类型
[root@bogon opt]# docker network ls
二、测试使用各网络类型
docker run --network=XXX ..........................
none:无网络模式
bridge:默认模式,相当于NAT
host:公用宿主机Network NameSpace
netstat -tulnp#查看主机端口状况
container:与其他容器共用NetWork NameSpace
应用场景:可以提供容器的宕机冗余。
三、Docker跨主机网络介绍
1、macvlan docker自带的,实现跨宿主机之间的网络通讯。
docker network create --driver macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macvlan_1 #创建一个虚拟的网络通道
ip link set eth0 promsic on (ubuntu或其他版本需要)
docker run -it --network --ip=192.168.1.1 macvlan_1 centos:7 /bin/bash #用--ip命令指定ip地址。
注:启动ipv4的forward转发
cat /proc/sys/net/ipv4/ip_forward#可以查看,如果是0则说明ipv4的转发功能没有开启。
2、docker跨主机访问-overlay实现
(1)启动consul服务实现网络的统一配置管理
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap #一个保存配置信息的服务dockerconsul:kv类型的存储数据库(key:value)
(2)在docker01、02上修改配置信息使之能够识别consul的配置信息:
vim /etc/docker/daemon.json
{
........................................................................
........................................................................
"hosts":["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"],
"cluster-store": "consul://10.0.0.100:8500",
"cluster-advertise": "10.0.0.100:2376"
}
vim /etc/docker/daemon.json
vim /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker
(3)创建overlay网络,在一方创建了overlay之后,其他容器使用overlay网络模型之后都会识别到overlay网络。
docker network create -d overlay --subnet 172.16.0.0/24 --gateway 172.16.0.254 ol1
(4)启动容器测试
docker run -it --network ol1 --name oldboy01 busybox /bin/bash
每个容器有两块网卡,eth0实现容器间的通讯,eth1实现容器访问外网