栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

docker网络

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker网络

docker网络
  • 场景
  • 1、docker0的网卡
  • 测试案例
  • 自定义网络配置
      • 指定案例模式
      • 定义自定义的网络配置模式
      • 容器连通
  • 4、网络连通
  • 总结

场景

多个容器之间如何通过网络连接,因为最终容器都是启动不同进程,jar工程连接redis容器,连接mysql容器如何通信。

1、docker0的网卡
ip addr# 查看网卡信息或者ifconfig


目前安装了docker虚拟机中,有三类网卡信息

  • lo:本地回环地址,127.0.0.1
  • ens33:本机虚拟网卡,如果是物理机,物理网卡。在虚拟机中,网卡名字centos redhat debian版本不同,名字不同(eth0)
  • docker0:这是我们安装docker之后自动配置的虚拟网络
    每个安装了docker0的网卡,是一个桥接网卡,可以绑定这个网卡的容器联通桥接在一起
测试案例

创建两个tomcat容器,tomcat01,一个tomcat02
每次创建容器可以通过–net选项执行网卡,如果没有指定网卡,那么容器就默认使用docker0,而且分配一个容器的ip地址。
通过inspect 命令查看

继续查看ip addr信息,发现多了网卡。
docker 容器的创建,网络–net没有添加,自动选择docker0桥接,虚拟网卡桥接技术使用vethpair(配对)技术。demo91联通的是网关docker0,demo2联通的是网卡docker2
所以通过docker0,demo1,demo2可以相互ping通

veth-pair总是一对一对的出现,每当创建一个容器,在Docker0就会挂载一对中的一个

tomcat01和docker0之间联通,这就是一对虚拟网卡的联通,通过docker0桥接,可以在tomcat中去访问联通tomcat02

自定义网络配置

相关命令是network

docker network --help
docker network ls#查看当前宿主机中容器在网络相关内容


name有三种,bridge,host,none也是三种网络模式
网络模式有四种:

  • bridge:桥接模式
  • none:不配值模式,允许用户后续进入容器自定义配置的
  • host:共享宿主机网络,也就是直接使用宿主机ip地址和网络端口
  • container:是容器和另外一个容器共享network namespace。kubernetes中大的pod就是多个容器共享一个network namespace.
  • 用户自定义的网络配置,也是我们接下来要使用的

查看网络配置

docker network inspect bridge

可以在返回结果中看到containers属性中,当前使用docker0网卡的所有容器信息

指定案例模式
docker run -itd --name tomcat1 -P --net bridge tomcat:9.0

如果是none,无法启动访问配置,因为没有网络
如果使用宿主机网络ip,我们可以直接访问查看启动192.168.19.160:8080

定义自定义的网络配置模式

让容器之间使用名字相互连通

docker network create --driver bridge --subnet 192.168.199.0/16 --gateway 192.168.199.1 mynet
  • create 表示创建一个自定义的网络
  • –driver bridge 当前自定义网络的类型是bridge桥接
  • –subnet子网网段192.168.199.0,只要在这个网段都属于同一个连通范围
  • –gateway定义网关192.168.199.1
    mynet自定义网络名称
容器连通

注意:这里必须是centos:centos7为镜像创建容器,不能是tomcat镜像

docker run -itd --name tomcat4 -P --net mynet  centos:centos7
docker run -itd --name tomcat3 -P --net mynet  centos:centos7
docker exec -it tomcat3 ping tomcat4

4、网络连通

能不是使用默认桥接的网络容器,连接自定义网络的容器
创建一个默认网络配置tomcat3

docker run -itd --name tomcat3 -p centos:centos7

和自定义的网络的容器tomcat1无论使用容器名还是ip都不能ping通

docker可以实现将不同的网络的容器连接在一起
将tomcat3链接到自定义网络mynet中

就可以ping通了
实际上在链接之后,给tomcat3分配了一个mynet地址192.168.0.3

总结

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/271709.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号