docker使用macvlan分配物理ip

很早之前我用macvlan模式的时候,烦的要命,也可能是那个时候我主机配置的网络复杂。前段时间 家里的服务器挂了,就重新买个装了新的系统。

由于我在网络出口的地方配置了个haproxy来做动态平衡,这样,对于let’s encrypt的证书的更新就 有问题了。不过,我可以禁止物理上的某个IP不走haproxy,于是,我一开始准备配置的是虚拟机。

后来想着随便试下macvlan是否可以,反正之前的docker配置文件在的,试下又没有啥损失。没想到一下 就成功了,这样还要虚拟机做什么。

在docker-compose配置非常简单:

version: "2"
services:
  ssl:
    image: busybox
    networks:
      ssl_net:
        ipv4_address: 192.168.1.250

networks:
  ssl_net:
    driver: macvlan
    driver_opts:
      parent: enp2s0   #物理网卡
      macvlan_mode: bridge
    ipam:
      config:
      - subnet: 192.168.1.0/24

也可以使用docker network先创建好,然后在不同的容器中使用也可以的。比如:

docker network create -d macvlan --subnet=192.168.1.0/24 --ip-range=192.168.1.182/29 -o parent=enp2s0 my_net

然后在docker-compose的networks就可以这样写了:

networks:
  ssl_net:
    external:
      name: my_net

这样在分流那边只用配置192.168.1.182/29了,也就是 192.168.1.177~192.168.1.182 总共6个IP.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据