本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Docker
  • Docker运维教程(8)Docker的网络设置

Docker运维教程(8)Docker的网络设置

发布:TangLu2019-4-4 18:27分类: Docker 标签: docker

宿主机装好Docker后会创建三个网络出来,如图:

docker_net1.png


一、Docker容器的五种网络模式

桥接模式Bridge:默认网络模式,使用最广,每一个容器都会跟宿主机的桥接网卡docker0相连,可以使用brctl show 命令观察容器创建前后的变化,能够看到容器创建后会将自身的网卡绑定在docker0桥接网卡中,容器默认分配的地址是172.17.0.x段,因为这属于桥接网卡的地址池范围

docker network inspect


仅主机模式Host:容器没有独立的网络,而是跟宿主机共享网络,该模式下的容器可以看到宿主机的网卡信息 

容器模式Container: 跟指定的其它容器共享网络

无网络模式None:有独立的network namespace,但是不进行任何网络配置,容器中只有lo网卡。

自定义user-defined:自定义网桥,有bridge、overlay、macvlan三种网络驱动,后面两种用于创建跨主机网络。



二、Docker各种网络模式的简单配置

1、使用默认的bridge桥接模式启动容器,在容器中查看网络会多出一张桥接网卡,用于宿主机和Docker的桥接

docker run --net=bridge -d docker.io/nginx /bin/bash


2、使用host模式启动容器的话,进容器查看网卡会发现跟宿主机网络送一模一样的,如果是一个业务多进程都在一个容器里面的话建议用这种方式,宿主机就看到80端口的监听 

docker run --net=host -d docker.io/nginx /bin/bash


3、使用共享网络模式启动容器,这样多个容器会使用同一个网络地址。如下示例中test_2会使用test_1的网络,它们IP会是一样的

docker run --name test_1 -it --rm nginx
docker run --name test_2 --network container:test_1 -it --rm nginx


4、使用None模式来启动容器,不进行任何网络设置

docker run --net=none -d docker.io/nginx /bin/bash


三、创建Docker自定义网络

1、首先创建出一块新的网桥设备

docker network create --driver bridge test_net  #创建一个名为test_net的网桥


2、查看网桥设备,可以看到增加了一块网桥

brctl show  #可以看到增加了一块网桥设备,名称变为test_net的短ID


3、验证一下短ID是否与网桥名称匹配

docker network inspect test_net #找到test_net的短ID,和上步对比是一致的


4、上一步操作后查看IP网段是172.18.0.0/16段,这是Docker自动分配的IP网段,也可以自定义需要的网段

 docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 test_net2

docker_net2.png



5、可以指定容器运行在任意自定义网络中,如果创建网络时有指定subnet,还可以指定容器的IP

docker run -itd --network=test_net centos
docker run -itd --network=test_net2 --ip 172.22.16.8 centos  #该网络必须有事先配置subnet才行


6、当多个容器工作在一个网络中时,他们互相之间是可以通信的。而自定义的网桥与默认网桥是不能直接通信的,因为本身就要隔离。那如何才能实现不同网桥之间能互通呢?只需要通过docker network connect将容器加入到指定网络中即可,如下:

docker network connect test_net bd5 #bd5为A网桥中容器的短ID

7、操作完成后,2个网桥中的主机应该就可以互ping了

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《Docker运维教程(8)Docker的网络设置
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-410.html  [生成短网址]

已有 0/1281 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~