Introduction
備忘録。
Resolution
そのものずばりな記事がこちら。すごく丁寧。
ネットワークを作成
ここが大事。
既定のネットワークであるBridgeでは固定IPが使えない。
1 | $ docker network create --subnet=<ネットワークアドレス>/<サブネットマスク> <新しいネットワーク名> |
例
1 | $ docker network create --subnet=172.16.0.0/16 mynet |
作成したネットワークは下記で確認。
1 | $ docker network ls |
ネットワークに追加
コンテナ実行時にネットワークを指定してIPも指定します。
当然、IPはネットワークで指定したネットワークアドレスの範囲内であること。
例えば下記のように指定します。
1 | $ docker run --name mysql ^ |
–netを省略すると、下記のように怒られます。
1 | docker: Error response from daemon: user specified IP address is supported on user defined networks only. |
ネットワークの確認
コンテナの中に入って確認してみます。
1 | $ docker exec -it mysql /bin/bash |
dockerコンテナの既定のIPアドレスは172.17.0.0/16なので、きちんと変わっていますね。
疎通確認
コンテナ起動時にポート転送設定(-p オプション)がしてあるなら、ホストOSからでもつながります。
逆に設定がしていないなら、同一のdockerネットワークを経由しないとつながらなくなります。