美文网首页
Docker macvlan

Docker macvlan

作者: BigTaiYang大太阳 | 来源:发表于2021-12-20 15:11 被阅读0次

默认情况下docker使用bridge网络,这是一个私有网络,只能在host和container之间互通,如果发布服务,需要使用端口映射的方式来解决,比如一个nginx容器要想对外提供服务则在容器启动时指定参数-p 80:80,然后使用host主机的ip加端口即可访问容器。这在大部分场景下都够用了,但是总有一些需求无法满足,比如如果多个容器都需要使用80端口,或者只使用ip通信的网络应用,macvlan可以做到。

macvlan

macvlan是可以虚拟mac地址,单独的macvlan存在意义不大,结合docker给每一个容器都虚拟一个mac地址,这样每个容器在局域网中都相当于一个独立的主机。

创建

docker network create -d macvlan \
  --subnet=192.168.10.0/24 \
  --ip-range=192.168.10.32/28 \
  --gateway=192.168.10.1 \
  --aux-address="my-router=192.168.32.33" \
  -o parent=eth0 macnet
  • subnet:子网
  • ip-range:docker自动分配ip范围,防止和局域网内其他主机重复
  • gateway:网关
  • aux-address:docker分配ip时排除的ip(这个ip有其他用途)
  • parent:父接口,也就是host主机的物理网卡
    以上参数强烈建议都指定,可以减少不必要的麻烦

创建容器

docker run -d --net=macnet --ip=192.168.10.34 --name nginx nginx
  • --net:指定关联上面创建的macvlan网络
  • --ip:指定ip,可以不指定(让docker自动分配),也可以去容器里修改

经过上面操作运行了一个nginx容器,此容器拥有一个虚拟的mac地址,在网内相当于一个真实的主机,任何网内的其他主机(非host)都可以通过为其指定的ip访问该容器。
如果使用相同的方法运行多个nginx容器,并不需要每个容器指定不同的端口,因为网络namespace是隔离的。

但是目前有个问题:hostcontainer是无法互通的,因为是macvlan的原因,同一个网口的流量是无法回传的,除非在外部有一个支持VEPA或者VN-Link的交换机。

以上命令中的网络接口、ip请根据实际情况进行调整

https://docs.docker.com/network/macvlan/

相关文章

  • 开发跨主机docker macvlan 和overlay 网络管

    docker 1.12中支持了overlay和macvlan网络,虽然macvlan仍处于实验阶段。 macvla...

  • Docker macvlan

    默认情况下docker使用bridge网络,这是一个私有网络,只能在host和container之间互通,如果发布...

  • docker 搭建macvlan 网络

    docker 搭建macvlan 网络 简单说,macvlan就是在宿主的网卡设置多个vlan信息,根据走的网卡不...

  • docker 搭建macvlan 网络

    docker 搭建macvlan 网络 简单说,macvlan就是在宿主的网卡设置多个vlan信息,根据走的网卡不...

  • docker和macvlan

    Macvlan 最近做一个项目,需要把container的ip暴露给外面,Google了一下发现使用macvlan...

  • docker 网络-macvlan

    1、什么是macvlan ,解决什么问题。有什么限制条件? macvlan.png1、网络结构 所有VM /nam...

  • docker vlan配置

    使用pipework为docker容器添加IP 使用Docker的macvlan为容器提供桥接网络及跨主机通讯 三...

  • Docker macvlan host to container

    使用通常的方式创建macvlan,容器关联macvlan网络,网内其他主机都可以互通访问,但唯独host和cont...

  • docker network

    docker 网络的种类 host bridge overlay Macvlan host 如果你对一个容器使用的...

  • Docker Network Introduction

    本文将介绍Docker中Bridge/Macvlan/Overlay这几种网络是如果工作的(并不涉及代码实现)。 ...

网友评论

      本文标题:Docker macvlan

      本文链接:https://www.haomeiwen.com/subject/ltkzfrtx.html