Docker网络管理

举报
zhchzh1000 发表于 2019/03/21 22:38:03 2019/03/21
【摘要】 Docker网络管理1、介绍网络管理是docker中重要的部分,由于需要构建集群,容器之间需要进行通信,尤其是跨主机之间的容器间进行通信。2、网络管理docker有三种网络类型,bridge、host和none。查看docker的网络帮助# 查看network命令帮助$>docker network --help运行结果如下:Usage: docker network COMMANDMan...

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

    spacer.gif

  1. 检查指定网络

    $>docker network inspect mynetwork

    网关和网段:

    spacer.gif

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
s103(192.168.231.103)192.168.231.30192.168.231.31
s104(192.168.231.104)192.168.231.40192.168.231.41

3.3 操作

  1. 对两台虚拟机的以太网卡均开启为混杂模式

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

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

    $>ifconfig

    spacer.gif

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

    # s103执行 ,需要位于同一网段
    $>docker network create -d macvlan --subnet=192.168.231.30/24 --gateway=192.168.231.2 -o parent=eno16777736 -o macvlan_mode=bridge eth0_1

    # s104执行
    $>docker network create -d macvlan --subnet=192.168.231.40/24 --gateway=192.168.231.2 -o parent=eno16777736 -o macvlan_mode=bridge eth0_1
  4. 分别在两台虚拟机上创建docker容器

  • s103

    # 
    $>docker run -ti --privileged --net=eth0_1 --ip=192.168.231.30 --name spark30 myrepos:centos-spark-ssh /usr/sbin/init

    #
    $>docker run -ti --privileged --net=eth0_1 --ip=192.168.231.31 --name spark31 myrepos:centos-spark-ssh /usr/sbin/init
  • s104

    # 
    $>docker run -ti --privileged --net=eth0_1 --ip=192.168.231.40 --name spark40 myrepos:centos-spark-ssh /usr/sbin/init

    #
    $>docker run -ti --privileged --net=eth0_1 --ip=192.168.231.41 --name spark41 myrepos:centos-spark-ssh /usr/sbin/init

启动新终端,运行命令

   $>docker exec -ti spark30 /bin/bash
  1. 测试容器之间是否能够ping通

    # spark30
    $>ping 192.168.231.31
    # spark30
    $>ping 192.168.231.40



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。