Docker-网络配置和存储配置
- 一. Docker网络配置
- 1. 桥接网络
- 2.host网络模式
- 3.none模式
- 二.自定义网络配置
- 1.创建自定义网桥
- 2.自定义网段
- 3.指定ip给容器
- 三.Docker网卡配置
- 1. 两个不同网桥的容器通信(双网卡)
- 2. macvlan网络
- <1>.使用eth0网卡来通信
- <2>.使用eth1网卡来通信
- 四. Docker的通信
- 1. docker连外部
- 2.外部连docker
一. Docker网络配置
ocker安装后会自动创建3种网络:bridge、host、none
先停掉之前的docker-compose,不然会影响响应速度
1. 桥接网络
1. 安装桥接网络
2.在容器内查看桥接
2.host网络模式
ps查询一下:
查看demo1和2的配置信息:
自动给demo1分配的ip:
自动给demo2分配的ip:
当我们停掉demo1和demo2
先start 的demo2,再start 的demo1
这时再查看1,2的配置信息:
从这里我们可以看出,demo1,2的ip互换了,这可以说明分配的ip并不是固定的,而是随机的,当容器down掉之后,谁先start谁先接管前面的ip
3.none模式
none模式是指禁用网络功能,只有lo接口,在容器创建时使用!
二.自定义网络配置
使用自定义的网络来控制哪些容器可以相互通信,还可以自动DNS解析容器名称到IP地址。
1.创建自定义网桥
在该容器内ping demo,可以ping通
2.自定义网段
3.指定ip给容器
–ip参数可以指定容器ip地址,但必须是在自定义网桥上
三.Docker网卡配置
1. 两个不同网桥的容器通信(双网卡)
桥接到不同网桥上的容器,彼此是不通信的。
为了使两个不同网桥的容器通信呢:
docker rm -f demo1
docker network rm mynet1
docker network create --subnet 172.20.0.0/24 --gateway 172.20.0.1 mynet2
docker run -d --name demo --network mynet1 --ip 172.20.0.10 nginx
docker run -it --rm --network mynet1 busybox
2. macvlan网络
需要两台虚拟机server1,server2:
在两台docker主机上各创建macvlan网络
<1>.使用eth0网卡来通信
删除之前配置的mynet:
创建macvlan,并运行一个容器:
查看macvlan1的配置信息:
运行容器:
以下在server2上操作:
查看server2的配置信息:
测试在server1上的docker去ping一下server2的docker的ip地址:
<2>.使用eth1网卡来通信
server1,2操作相同:
先在server1,2上再添加一块网卡:
virt-manager
添加网卡:add hardware
network网卡:virtio桥接的模式
finish
ip link set up eth1让它启用!
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth1
vim ifcfg-eth1
禁止eth0获得ip:
重新激活网卡
ifup eth1
查看eth1
已经激活但是promisc模式还没有打开
开启promisc模式
创建容器并运行:
测试:
server1里ping server2 的ip:172.21.0.11
四. Docker的通信
1. docker连外部
在真机上执行以下命令,让虚拟机上网
ping 百度:
2.外部连docker
删除之前的镜像:
指定80端口:
查看以下添加的ip
测试:
在真机curl容器的ip:
完成!!!!!