当前位置:   article > 正文

将docker容器设置为宿主机同一网段_docker 容器网络保持与宿主一致

docker 容器网络保持与宿主一致

        本文主要讲述,将docker的容器ip设置为宿主机同一网段,并且允许宿主机以及局域网其它机器访问它。

  1. # 创建docker的虚拟网络,本人局域网的网段为192.168.1.0/24,网关为路由器的192.168.1.1
  2. docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=br0 docker-bridge
  3. # 创建docker容器,通过network参数指定前面创建的虚拟网络,ip参数指定容器的ip地址。下面是个例子,具体命令可以自行替换
  4. docker run -itd --name test --network=docker-bridge --ip=192.168.1.18 alpine

        进行到这里之后,会发现外部机器能ping通容器,但是宿主机无法ping通,这是因为macvlan的原因,还需要进行以下步骤

  1. # 添加一个虚拟网卡并桥接到物理网卡,我这里因为上面还有一层虚拟网桥,所以用的是br0,否则就是用物理网卡名
  2. ip link add macvlan-proxy link br0 type macvlan mode bridge
  3. # 给虚拟网卡配置ip,这里可以是网段内任意ip,但是要避免ip冲突
  4. ip addr add 192.168.1.16 dev macvlan-proxy
  5. # 启用虚拟网卡
  6. ip link set macvlan-proxy up
  7. # 添加路由映射表,这里ip使用容器的ip
  8. ip route add 192.168.1.18 dev macvlan-proxy

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/340365
推荐阅读
相关标签
  

闽ICP备14008679号