Docker网络管理

Docker网络管理

1、介绍

网络管理是docker中重要的部分,由于需要构建集群,容器之间需要进行通信,尤其是跨主机之间的容器间进行通信。

2、网络管理

docker有三种网络类型,bridge、host和none。

  1. 查看docker的网络帮助

    # 查看network命令帮助
    $>docker network --help

    运行结果如下:

    Usage:  docker network COMMAND
    
    Manage networks
    
    Commands:
      connect     Connect a container to a network
      create      Create a network
      disconnect  Disconnect a container from a network
      inspect     Display detailed information on one or more networks
      ls          List networks
      prune       Remove all unused networks
      rm          Remove one or more networks
  2. 查看网络列表

    列表中DRIVER是三种类型之一,name可以任意取。

    $>docker network list

    xpc_docker_010.png

  3. 创建自己的网络,指定子网

    $>docker network create --subnet 172.18.0.0/16 mynetwork
  4. 查看创建的网络

    $>docker network list

    结果如下:

    1539527406159

  5. 检查指定网络

    $>docker network inspect mynetwork
    • 网关和网段

      1539561974732

    • 每个容器的ip地址配置

      1539562128087

3、使用macvlan配置跨网访问

3.1 环境说明

本案例使用两台虚拟机,s101和s102,具体配置见表格。

主机名称ip地址网关
s101192.168.231.101192.168.231.2
s102192.168.231.102192.168.231.2
3.2 目标

本案例要是实现两台虚拟机内的四个docker容器之间的网络访问,具体网络拓扑如下:

主机docker容器1docker容器2
s101(192.168.231.101)192.168.231.10192.168.231.11
s102(192.168.231.102)192.168.231.20192.168.231.21
3.3 操作
  1. 对两台虚拟机的以太网卡均开启为混杂模式

    如果不开启混杂模式,会导致macvlan无法访问外网。使用命令如下:

    # 设置以太网卡开启混杂模式
    $>ip link set eth16777736 promisc on
  2. 查看网卡状态

    $>ifconfig

    1539700638692

  3. 在每台虚拟机上执行如下命令,添加虚拟网卡

    # s101执行 ,需要位于同一网段
    $>docker network create -d macvlan --subnet=192.168.231.10/24 --gateway=192.168.231.2 -o parent=eno16777736 -o macvlan_mode=bridge eth0_1
    
    # s102执行
    $>docker network create -d macvlan --subnet=192.168.231.20/24 --gateway=192.168.231.2 -o parent=eno16777736 -o macvlan_mode=bridge eth0_1
  4. 分别在两台虚拟机上创建docker容器

    • s101

      # 容器:test10
      $>docker run -ti --net=eth0_1 --ip=192.168.231.10 --name test10 f3b18d5d93e7  /bin/bash
      
      # 容器:test11
      $>docker run -ti --net=eth0_1 --ip=192.168.231.11 --name test11 f3b18d5d93e7  /bin/bash
    • s102

      # 容器:test20
      $>docker run -ti --net=eth0_1 --ip=192.168.231.20 --name test20 f3b18d5d93e7  /bin/bash
      
      # 容器:test21
      $>docker run -ti --net=eth0_1 --ip=192.168.231.21 --name test21 f3b18d5d93e7  /bin/bash
  5. 测试容器之间是否能够ping通

    $>ping 192.168.231.11    # 10 ping 11
    $>ping 192.168.231.20    # 10 ping 20

转载于:https://www.cnblogs.com/xupccc/p/9800369.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值