クラウド コンピューティングとコンテナ化テクノロジの人気に伴い、Docker は人気のあるコンテナ化ソリューションになりました。 Docker コンテナはデフォルトでホスト マシンの IP アドレスを使用するため、場合によっては Docker コンテナに特定の IP アドレスを指定する必要があります。この記事では、DockerコンテナでIPアドレスを指定する方法について説明します。
Docker コンテナの IP アドレス割り当て
Docker では、コンテナの IP アドレスは Docker デーモンによって動的に割り当てられます。デフォルトでは、ホストの IP アドレスが使用されます。この場合、すべての Docker コンテナはホストの IP アドレスを通じて通信できます。
ほとんどのアプリケーションではこのデフォルト設定で十分ですが、場合によっては、Docker コンテナーに静的 IP アドレスを指定する必要がある場合があります。
Docker コンテナの IP アドレスを指定する
Docker コンテナの静的 IP アドレスを指定するには 2 つの方法があります。 VLAN または macvlan ネットワーク プロファイルを介して Docker コンテナをホストの物理ネットワークに接続し、静的 IP アドレスを使用するように構成できます。さらに、ブリッジ ネットワーク モードを使用してコンテナー用に独自のネットワークをセットアップし、静的 IP アドレスを使用するように構成することもできます。
方法 1: VLAN または macvlan ネットワークを使用する
VLAN と macvlan ネットワークは、それぞれ仮想 LAN と物理 LAN の概念です。これにより、Docker コンテナをホストの物理ネットワークに接続し、静的 IP アドレスを割り当てることができます。このアプローチの主な利点は、Docker コンテナーとホスト マシンが同じネットワークを共有するため、コンテナーが外部デバイスと直接通信できることです。
VLAN または macvlan ネットワークを使用する手順は次のとおりです。
Docker コンテナを物理ネットワークを使用する場合は、まず VLAN または macvlan ネットワークを作成する必要があります。次のコマンドを使用して VLAN ネットワークを作成できます。
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 mynetwork
このコマンドは、192.168.1.0/24 サブネットと 192.168.1.1 ゲートウェイを使用する mynetwork という名前の VLAN ネットワークを作成します。さらに、親ネットワーク インターフェイスが eth0 であることを指定します。この例では、eth0 はホスト マシン上のネットワーク インターフェイスです。
次に、VLAN または macvlan ネットワークに Docker コンテナを作成する必要があります。次のコマンドを使用して、Docker コンテナを作成し、mynetwork ネットワークに接続します。
docker run -itd --name mycontainer --network mynetwork --ip 192.168.1.10 busybox
このコマンドは、mycontainer という名前の Docker コンテナを作成し、mynetwork ネットワークに接続します。さらに、静的 IP アドレス 192.168.1.10 をコンテナに割り当てます。
これで、ホストの IP アドレスを使用せずに mycontainer コンテナと通信できるようになりました。さらに、他のデバイスは静的 IP アドレス 192.168.1.10 を介してこのコンテナにアクセスできます。
方法 2: ブリッジ ネットワークを使用する
ブリッジ ネットワークは、Docker で一般的に使用されるネットワーク モードの 1 つです。これにより、Docker コンテナー用の新しいネットワークを作成し、静的 IP アドレスを使用するように構成できます。このアプローチを使用すると、Docker コンテナーは完全に分離され、ホストや他のコンテナーとネットワークを共有できなくなります。
ブリッジ ネットワークを使用する手順は次のとおりです。
Docker コンテナー用の新しいネットワークを作成するには、次を使用します。次のコマンド:
docker network create --subnet=172.18.0.0/16 mybridge
このコマンドは、mybridge という名前のブリッジ ネットワークを作成し、そのサブネットを 172.18.0.0/16 として指定します。
次に、動作する Web アプリケーションを Docker コンテナで実行する必要があります。次のコマンドを使用して、nginx Web サーバー コンテナを起動します。
docker run -itd --name mynginx --network mybridge nginx
このコマンドは、mybridge ネットワークで mynginx という名前の Nginx コンテナを起動します。
次に、mynginx コンテナーの静的 IP アドレスを指定する必要があります。次のコマンドを使用して、コンテナに静的 IP アドレスを割り当てます。
docker network connect --ip 172.18.0.2 mybridge mynginx
このコマンドは、mynginx コンテナに IP アドレス 172.18.0.2 を割り当てます。これで、他のパブリック IP アドレスと同様に、この IP アドレスを使用してアクセスできるようになります。
概要
Docker コンテナの IP アドレスは、Docker デーモンによって動的に割り当てられます。デフォルトでは、ホストの IP アドレスが使用されます。ただし、場合によっては、Docker コンテナーに静的 IP アドレスを指定する必要がある場合があります。 2 つの異なる方法について説明しました。VLAN または macvlan ネットワークを使用して Docker コンテナをホストの物理ネットワークに接続し、静的 IP アドレスに設定するか、ブリッジ ネットワーク モードを使用してコンテナ用に独自のネットワークをセットアップし、構成することができます。静的 IP アドレスを使用します。ニーズに合った方法を選択して、特定の IP アドレスを Docker コンテナーに割り当てることができるようになりました。
以上がDockerでIPを指定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。