はじめに
この実験では、docker network disconnect
コマンドを使用してコンテナのネットワーク接続を管理する方法を学びます。まず、カスタムネットワークを作成し、それに接続されたコンテナを実行します。
その後、既存のコンテナを追加のネットワークに接続する方法を見ていきます。最後に、コンテナを特定のネットワークから切断し、切断を確認する方法を学びます。この実践的な演習を通じて、コンテナのネットワーク接続性を制御する実際の経験を積むことができます。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、docker network disconnect
コマンドを使用してコンテナのネットワーク接続を管理する方法を学びます。まず、カスタムネットワークを作成し、それに接続されたコンテナを実行します。
その後、既存のコンテナを追加のネットワークに接続する方法を見ていきます。最後に、コンテナを特定のネットワークから切断し、切断を確認する方法を学びます。この実践的な演習を通じて、コンテナのネットワーク接続性を制御する実際の経験を積むことができます。
このステップでは、カスタムの Docker ネットワークを作成し、それに接続されたコンテナを実行する方法を学びます。デフォルトでは、Docker コンテナは bridge
ネットワークに接続されますが、カスタムネットワークを作成することで、コンテナ間の分離と通信制御をより適切に行うことができます。
まず、my-network
という名前の新しいブリッジネットワークを作成しましょう。
docker network create my-network
出力に新しく作成されたネットワークの ID が表示されるはずです。
次に、Docker Hub から nginx
イメージを取得します。このイメージを使用してコンテナを作成します。
docker pull nginx
このコマンドは nginx
イメージをローカルマシンにダウンロードします。
では、Nginx コンテナを実行し、先ほど作成した my-network
に接続しましょう。コンテナの名前は my-nginx
とします。
docker run -d --name my-nginx --network my-network nginx
このコマンドを分解して説明しましょう。
docker run
: このコマンドはコンテナを実行するために使用されます。-d
: このフラグはコンテナをデタッチドモードで実行します。つまり、バックグラウンドで実行されます。--name my-nginx
: これはコンテナに my-nginx
という名前を割り当てます。--network my-network
: これはコンテナを作成した my-network
に接続します。nginx
: これはコンテナを作成するために使用するイメージです。コマンドを実行すると、Docker は my-nginx
コンテナを起動し、my-network
に接続します。
前のステップでは、ネットワークを作成し、それに接続されたコンテナを実行しました。このステップでは、既に実行中の コンテナを 追加の ネットワークに接続する方法を示します。異なるネットワーク上の他のコンテナと通信する必要がある場合、これは便利です。
まず、another-network
という名前の別の新しいブリッジネットワークを作成しましょう。
docker network create another-network
出力にこの新しいネットワークの ID が表示されるはずです。
では、既存の my-nginx
コンテナをこの新しい another-network
に接続します。
docker network connect another-network my-nginx
このコマンドは、指定されたコンテナ (my-nginx
) を指定されたネットワーク (another-network
) に接続します。これで、コンテナは my-network
と another-network
の両方にネットワークインターフェイスを持つようになります。
コンテナが両方のネットワークに接続されていることを確認するために、コンテナのネットワーク設定を調べることができます。
docker inspect my-nginx
出力の "Networks"
セクションを探します。my-network
と another-network
の両方のエントリが表示され、コンテナが両方のネットワークに正常に接続されていることを示しているはずです。
前のステップでは、my-nginx
コンテナを追加のネットワーク another-network
に接続しました。このステップでは、コンテナを特定のネットワークから切断する方法を学びます。コンテナが特定のネットワークの一部である必要がなくなった場合に便利です。
my-nginx
コンテナを another-network
から切断するには、docker network disconnect
コマンドを使用します。
docker network disconnect another-network my-nginx
このコマンドは、ネットワーク名 (another-network
) とコンテナ名 (my-nginx
) を引数として受け取ります。
このコマンドを実行すると、コンテナは指定されたネットワークから削除されます。共有ネットワークにも接続されていない限り、another-network
上の他のコンテナと通信できなくなります。
コンテナが切断されたことを確認するために、再度コンテナのネットワーク設定を調べることができます。
docker inspect my-nginx
出力の "Networks"
セクションを見てください。ここでは、my-network
のみが表示され、another-network
は表示されないはずです。これにより、コンテナが another-network
から正常に切断されたことが確認できます。
前のステップでは、my-nginx
コンテナを another-network
から切断しました。このステップでは、コンテナが実際に another-network
に接続されていないことを最終的に確認します。
docker inspect
コマンドを再度使用して、my-nginx
コンテナのネットワーク設定を調べることができます。
docker inspect my-nginx
このコマンドの出力を確認してください。特に、"Networks"
セクションを探します。"Networks"
の下には my-network
のみが表示されるはずです。このリストに another-network
がないことは、コンテナが正常に切断されたことを確認するものです。
このステップは、前の操作の確認として機能し、Docker コンテナのネットワーク状態を確認する方法を強調します。
この実験では、Docker コンテナのネットワーク接続の管理方法を学びました。まず、カスタムブリッジネットワークを作成し、docker run --network
コマンドを使用してそれに直接接続されたコンテナを起動しました。これにより、コンテナ作成時に特定のネットワークへの初期接続が実証されました。
その後、docker network connect
コマンドを使用して、既に実行中のコンテナを追加のネットワークに接続する方法を調べました。最後に、docker network disconnect
コマンドを使用してコンテナをネットワークから切断する方法を学び、切断を確認しました。これにより、コンテナ作成後のネットワークメンバーシップ管理の柔軟性が示されました。