Docker介绍(三)之网络管理

一、Docker网络管理命令

  • 查看网络 – docker network ls
    • 命令格式:docker network ls [OPTIONS]
    • 命令参数(OPTIONS):
      -f, --filter filter 过滤条件(如 'driver=bridge’)
      –format string 格式化打印结果
      –no-trunc 不缩略显示
      -q, --quiet 只显示网络对象的ID
    • 注意:默认情况下,docker安装完成后,会自动创建bridge、host、none三种网络驱动
  • 创建网络 – docker network create
    • 命令格式:docker network create [OPTIONS] NETWORK
    • 命令参数(OPTIONS):
      -d, --driver string 指定网络的驱动(默认 “bridge”)
      –subnet strings 指定子网网段(如192.168.0.0/16、172.88.0.0/24)
      –ip-range strings 执行容器的IP范围,格式同subnet参数
      –gateway strings 子网的IPv4 or IPv6网关,如(192.168.0.1)
    • 注意:
      • host和none模式网络只能存在一个
      • docker自带的overlay 网络创建依赖于docker swarm(集群负载均衡)服务
      • 192.168.0.0/16 等于 192.168.0.0~192.168.255.255 192.168.8.0/24
      • 172.88.0.0/24 等于 172.88.0.0~172.88.0.255
  • 网络删除 : docker network rm
  • 查看网络详细信息 :docker network inspect 或者 docker inspect
  • 使用网络 :docker run /create–network
  • 网络连接与断开 :docker network connect/disconnect

二、Docker中网络驱动模式

1. bridge 网络模式

在这里插入图片描述

1.1 特点:
  • 宿主机上需要单独的bridge网卡,如默认docker默认创建的docker0。
  • 容器之间、容器与主机之间的网络通信,是借助为每一个容器生成的一对veth pair虚拟网络设备对进行通信的。一个在容器上,另一个在宿主机上。
  • 每创建一个基于bridge网络的容器,都会自动在宿主机上创建一个veth**虚拟网络设备。
  • 外部无法直接访问容器。需要建立端口映射才能访问。
  • 容器借由veth虚拟设备通过如docker0这种bridge网络设备进行通信。
  • 每一容器具有单独的IP。
1.2 端口映射
  • 命令:docker run/create -P … 或者 docker run/create –p …
    • 命令参数(OPTIONS):
      -P, --publish-all 将容器内部所有暴露端口进行随机映射
      -p, --publish list 手动指定端口映射
    • 注意:
      -p [HOST_IP]:[HOST_PORT]:CONTAINER_PORT
      如:-p ::80 将容器的80端口随机(端口)映射到宿主机任意IP
      -p :8000:6379 将容器的6379端口映射到宿主机任意IP的8000端口
      -p 192.168.5.1::3306 将容器的3306端口随机(端口)映射到宿主机的192.168.5.1IP上

2. host 网络模式

在这里插入图片描述

2.1 特点:
  • 容器完全共享宿主机的网络。网络没有隔离。宿主机的网络就是容器的网络。
  • 容器、主机上的应用所使用的端口不能重复。例如:如果宿主机已经占用了8090端口,那么任何一个host模式的容器都不可以使用8090端口了;反之同理。
  • 外部可以直接访问容器,不需要端口映射。
  • 容器的IP就是宿主机的IP。
2.2 特殊host 网络模式(Container网络模式)

在这里插入图片描述

  • Container网络模式,其实就是**容器共享其他容器的网络。**相当于该容器在网络层面上,将其他容器作为“主机”。它们之间的网络没有隔离。
  • 这些容器之间的特性同host模式。
  • 使用方法:Docker run/create --network container:CONTAINER …

3. none 网络模式

3.1 特点
  • 容器上没有网络,也无任何网络设备。如果需要使用网络,需要用户自行安装与配置。
  • 应用场景:该模式适合需要高度定制网络的用户使用。
3.2 overlay 网络模式
  • Overlay 网络,也称为覆盖网络。
  • Overlay 网络的实现方式和方案有多种。Docker自身集成了一种,基于VXLAN隧道技术实现。
  • Overlay 网络主要用于实现跨主机容器之间的通信。
  • 应用场景:需要管理成百上千个跨主机的容器集群的网络时。
3.3 实现原理

在这里插入图片描述

  • IP隧道网络原理:
    在这里插入图片描述

4. macvlan 网络模式

在这里插入图片描述

  • macvlan网络模式,最主要的特征就是他们的通信直接基于mac地址进行转发
  • 这时宿主机其实充当一个二层交换机。Docker会维护着一个MAC地址表,当宿主机网络收到一个数据包后,直接根据mac地址找到对应的容器,再把数据交给对应的容器。
  • 容器之间可以直接通过IP互通,通过宿主机上内建的虚拟网络设备(创建macvlan网络时自动创建),但与主机无法直接利用IP互通。
  • 应用场景:由于每个外来的数据包的目的mac地址就是容器的mac地址,这时每个容器对于外面网络来说就相当于一个真实的物理网络设备。因此当需要让容器来的网络看起来是一个真实的物理机时,使用macvlan模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值