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,不然会影响响应速度

docker使用多网卡 docker 网卡配置_docker

1. 桥接网络

1. 安装桥接网络

docker使用多网卡 docker 网卡配置_docker_02

docker使用多网卡 docker 网卡配置_docker_03

docker使用多网卡 docker 网卡配置_自定义_04


2.在容器内查看桥接

docker使用多网卡 docker 网卡配置_Docker_05

docker使用多网卡 docker 网卡配置_Docker_06

2.host网络模式

docker使用多网卡 docker 网卡配置_docker_07

docker使用多网卡 docker 网卡配置_docker使用多网卡_08

docker使用多网卡 docker 网卡配置_Docker_09

docker使用多网卡 docker 网卡配置_docker使用多网卡_10


ps查询一下:

docker使用多网卡 docker 网卡配置_docker_11


查看demo1和2的配置信息:

docker使用多网卡 docker 网卡配置_docker_12


自动给demo1分配的ip:

docker使用多网卡 docker 网卡配置_docker使用多网卡_13


docker使用多网卡 docker 网卡配置_自定义_14


自动给demo2分配的ip:

docker使用多网卡 docker 网卡配置_docker使用多网卡_15


当我们停掉demo1和demo2

docker使用多网卡 docker 网卡配置_docker使用多网卡_16


先start 的demo2,再start 的demo1

docker使用多网卡 docker 网卡配置_Docker_17


这时再查看1,2的配置信息:

docker使用多网卡 docker 网卡配置_docker使用多网卡_18


docker使用多网卡 docker 网卡配置_docker使用多网卡_19


docker使用多网卡 docker 网卡配置_docker使用多网卡_20


docker使用多网卡 docker 网卡配置_自定义_21


从这里我们可以看出,demo1,2的ip互换了,这可以说明分配的ip并不是固定的,而是随机的,当容器down掉之后,谁先start谁先接管前面的ip

docker使用多网卡 docker 网卡配置_docker_22

3.none模式

none模式是指禁用网络功能,只有lo接口,在容器创建时使用!

docker使用多网卡 docker 网卡配置_docker_23

二.自定义网络配置

使用自定义的网络来控制哪些容器可以相互通信,还可以自动DNS解析容器名称到IP地址。

1.创建自定义网桥

docker使用多网卡 docker 网卡配置_Docker_24

docker使用多网卡 docker 网卡配置_docker使用多网卡_25


docker使用多网卡 docker 网卡配置_Docker_26

在该容器内ping demo,可以ping通

docker使用多网卡 docker 网卡配置_自定义_27

2.自定义网段

docker使用多网卡 docker 网卡配置_Docker_28


docker使用多网卡 docker 网卡配置_docker使用多网卡_29

3.指定ip给容器

–ip参数可以指定容器ip地址,但必须是在自定义网桥上

docker使用多网卡 docker 网卡配置_自定义_30


docker使用多网卡 docker 网卡配置_自定义_31


docker使用多网卡 docker 网卡配置_docker_32


docker使用多网卡 docker 网卡配置_docker使用多网卡_33

三.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

docker使用多网卡 docker 网卡配置_docker使用多网卡_34


docker使用多网卡 docker 网卡配置_Docker_35

2. macvlan网络

需要两台虚拟机server1,server2:

在两台docker主机上各创建macvlan网络

<1>.使用eth0网卡来通信

docker使用多网卡 docker 网卡配置_docker_36


docker使用多网卡 docker 网卡配置_docker使用多网卡_37


删除之前配置的mynet:

docker使用多网卡 docker 网卡配置_docker使用多网卡_38


创建macvlan,并运行一个容器:

docker使用多网卡 docker 网卡配置_docker使用多网卡_39


docker使用多网卡 docker 网卡配置_Docker_40


查看macvlan1的配置信息:

docker使用多网卡 docker 网卡配置_docker使用多网卡_41


docker使用多网卡 docker 网卡配置_docker使用多网卡_42


运行容器:

docker使用多网卡 docker 网卡配置_docker使用多网卡_43


以下在server2上操作:

docker使用多网卡 docker 网卡配置_Docker_44


docker使用多网卡 docker 网卡配置_自定义_45


docker使用多网卡 docker 网卡配置_自定义_46


查看server2的配置信息:

docker使用多网卡 docker 网卡配置_自定义_47


docker使用多网卡 docker 网卡配置_docker_48


docker使用多网卡 docker 网卡配置_docker_49


docker使用多网卡 docker 网卡配置_docker使用多网卡_50

docker使用多网卡 docker 网卡配置_Docker_51


测试在server1上的docker去ping一下server2的docker的ip地址:

docker使用多网卡 docker 网卡配置_docker使用多网卡_52

<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

docker使用多网卡 docker 网卡配置_自定义_53


禁止eth0获得ip:

docker使用多网卡 docker 网卡配置_docker使用多网卡_54


docker使用多网卡 docker 网卡配置_Docker_55


重新激活网卡

ifup eth1

查看eth1

已经激活但是promisc模式还没有打开

docker使用多网卡 docker 网卡配置_自定义_56

开启promisc模式

docker使用多网卡 docker 网卡配置_docker使用多网卡_57


创建容器并运行:

docker使用多网卡 docker 网卡配置_自定义_58


测试:

server1里ping server2 的ip:172.21.0.11

docker使用多网卡 docker 网卡配置_Docker_59

四. Docker的通信

1. docker连外部

docker使用多网卡 docker 网卡配置_自定义_60


docker使用多网卡 docker 网卡配置_docker使用多网卡_61


在真机上执行以下命令,让虚拟机上网

docker使用多网卡 docker 网卡配置_docker使用多网卡_62


docker使用多网卡 docker 网卡配置_自定义_63


ping 百度:

docker使用多网卡 docker 网卡配置_Docker_64

2.外部连docker

删除之前的镜像:

docker使用多网卡 docker 网卡配置_自定义_65


docker使用多网卡 docker 网卡配置_docker_66

指定80端口:

docker使用多网卡 docker 网卡配置_Docker_67


docker使用多网卡 docker 网卡配置_docker_68

查看以下添加的ip

docker使用多网卡 docker 网卡配置_自定义_69


docker使用多网卡 docker 网卡配置_自定义_70

docker使用多网卡 docker 网卡配置_Docker_71


docker使用多网卡 docker 网卡配置_docker_72


测试:

在真机curl容器的ip:

docker使用多网卡 docker 网卡配置_docker_73


docker使用多网卡 docker 网卡配置_docker使用多网卡_74


完成!!!!!