半分は備忘録ですが、 MACVLAN を使って Docker コンテナーに IP アドレスを付ける方法を記述します。
MACVLAN の設定
/etc/network/interfaces
の記述例:
allow-hotplug eth0 iface eth0 inet manual up ip link set $IFACE up arp off up ifup macvlan0 || true iface eth0 inet6 auto accept_ra 0 down ifdown macvlan0 || true down ip link set $IFACE down iface macvlan0 inet static address 192.0.2.2 netmask 255.255.255.0 gateway 192.0.2.1 pre-up ip link add link eth0 name "$IFACE" type macvlan mode bridge 1 iface macvlan0 inet6 static address 2001:DB8::2/64 accept_ra 2 autoconf 1 post-down ip link delete "$IFACE" type macvlan || true
補足: eth0
は IP 通信に使わないので ARP と RA を無効化しておきます。
Docker ネットワークの設定
コマンド例:
docker network create -d macvlan \ --subnet=192.0.2.0/24 \ --gateway=192.0.2.1 \ --ip-range=192.0.2.128/25 \ -o parent=eth0 \ network-name
Docker コンテナーの設定
コマンド例:
docker container --network=network-name \ --ip=192.0.2.3 \ image …