概要
ホストと同じIP空間のIPを割り当てたい。
docker public ip とか docker static ip とか調べてみたが
docker networkで閉じた空間での固定IPの話が多い印象だった。
結論
docker 1.12.0 以降?でサポートされた MACVLANを使う。
参考情報に載せたところで見つかった。
コマンド
オプションのparentについては、下の参考情報の中に、見つける方法があったと思うので、それを参照してください。
docker network create -d macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 mcv
できたか確認
docker network ls
結果できている
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
692afa5f3461 bridge bridge local
0a2012c60358 host host local
032e489b5816 mcv macvlan local
ba30b9b4c185 none null local
MACVLANを使って実際に試す
docker run --rm --net=mcv -it --rm alpine ping -c 4 8.8.8.8
docker run --rm --net=mcv -it --rm alpine ip -a
固定IPを割り振る
わりふれたことだけを確認する
docker run --rm \
--net=mcv \
--ip=192.168.1.100 \
--rm alpine ip a
まだできていないこと
- dockerコンテナにnginxを立てて、そこに、固定IP として振ったIPでアクセスできること
TODO
今度試す
参考情報
ドキュメント
調べていたら以下を見つけた
以下のスライドのようなネットワーク構成の場合
作り方はこちらにかいてあった