很早之前我用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.