私はコンテナにルーティング可能なIPを与えようとしています。ローカルネットワークは192.168.1.0/24で、192.168.1.17/29を使用してコンテナを提供したいと思います。ドッカーコンテナに独自のルーティング可能なIP(ホストとは異なる)を与える方法はありますか?
目的は、各コンテナに独自のIPを持たせることです。このように、2つのコンテナがポート80でWebサーバーを実行する場合、共有ホストのIP上の異なるポートにマッピングするのではなく、ポート80上の一意のIPを介してローカルネットワーク上の他のホストから直接アクセスできます。
独自のネットワークカードを備えた物理マシンには、ネットワーク上で192.168.1.xxxのIPがそれぞれ異なる場合と似ています。
が、私はこれを試してみました:
次が得docker network create --subnet 192.168.1.0/24 --ip-range 192.168.1.17/29 --gateway 192.168.1.1 test_nw
:この場合
$ docker network inspect test_nw
[
{
"Name": "test_nw",
"Id": "96bd574300059ef3710527a9bd0b3010d3b3c22d8de321ff459697eda96ab5e6",
"Created": "2017-12-06T21:50:08.591070587-05:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.1.0/24",
"IPRange": "192.168.1.17/29",
"Gateway": "192.168.1.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
コンテナ内から、私は192.168.1.1にpingを実行することができますが、私は上で何かをpingできませんローカルネットワーク上の他のデバイスにpingすることはできません(192.168.1.2は存在しますが到達できません)
ホスト(私のラップトップ)は、インターネットまたは私のローカルネットワーク上で私はdocker network rm
とこのネットワークを削除するまで。
私は明らかに何かが不足していますが、私は何を理解できません。私がやろうとしていることを達成する方法はありますか?
興味深いことに、私はドッカーの仕事だと思っていました。 – springloaded
これはポートマッピングでのみ機能しますが、どうすればこのようなことができますか:https://blog.jessfraz.com/post/ips-for-all-the-things/コンテナはパブリックIPを取得しません。ポートマッピングが必要ですか? – springloaded