Docker-Network
Docker本地网络类型
docker network ls
nonoe #无网络模式
bridge #默认模式,相当于NAT
host #公用宿主机Network NameSpace
container #与其他容器公用Network NameSpace
自定义网络
--driver bridge
--subnet 192.168.0.0/15
--gateway 192.168.0.1
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynetwork #定义了一个叫mynetwork的网络
docker network inspect mynetwork #查看mynetwork的元数据
容器网络互通
将其他网段的docker容器连接到另外一个网段,使两个不同网段的容器能通信
一个容器两个不同网段的ip地址
将另一个网段的容器加入mynetwork
docker netwrok connect mynetwork tomcat0-1
Overlay
docker之间跨主机访问
1、启动consul服务,实现网络的统一配置管理
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
vim /etc/docker/daemon.json
{
"hosts":["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"],
"cluster-store": "consul://172.16.1.110:8500",
"cluster-advertise": "172.16.1.110:2376"
}
需要修改/usr/lib/systemd/system/docker.service
然后重启docker
2、创建overlay网络
docker network create -d overlay --subnet 192.168.0.0/24 --gateway 192.168.0.254 oll
两边主机都需要修改配置文件,一端创建之后,两边都能看到创建的oll网络
3、启动容器测试
docker run -it --network oll --name oll-1 busybox /bin/bash
每个容器有两块网卡,eth0实现容器间通讯,eth1实现外网访问
Macvlan
docker network create --driver macvlan --subnet=172.16.1.0/24 --gateway=172.16.1.254 -o parent=eth0 macvlan_1