Dockerネットワークの作成と管理方法 - TechRepublic

Dockerネットワークの作成と管理方法 - TechRepublic

出版

ジャック・ウォーレンの画像

アフィリエイトリンクまたはスポンサーシップを通じて、ベンダーから収益を得る場合があります。これにより、サイト上の商品配置が影響を受ける可能性がありますが、レビューの内容には影響しません。詳細は利用規約をご覧ください。

Dockerでは、特定のネットワークを作成し、そこにコンテナを接続できます。この非常に柔軟な機能を活用する方法をご紹介します。

Dockerは、市場で最も柔軟でユーザーフレンドリーなコンテナシステムの一つです。プラットフォームに慣れてしまえば、できないことはほとんどありません。もちろん、Dockerについて学べば学ぶほど、Dockerについて学ぶべきことが増えていくことに気づきます。その一例がDockerネットワークです。Dockerを完全に分離したネットワークを作成し、その分離されたネットワーク上にコンテナをデプロイできることをご存知でしたか?

すぐに使用できる状態で、Docker は次の 3 つのネットワークを作成します。

  • ブリッジ – サブネットとゲートウェイを持つ自動生成されたネットワーク。
  • ホスト – コンテナがホストのネットワークに接続できるようにします。
  • none – ネットワーク インターフェースを持たないコンテナー固有のネットワーク スタック。

Dockerはデフォルトでブリッジネットワークに接続します。これにより、デプロイされたコンテナをネットワーク上で確認できるようになります。これらのネットワークを管理し、新しいネットワークを作成し、その新しいネットワークにコンテナをデプロイする方法を見てみましょう。

ネットワークの表示

Docker ネットワークの現在のリストを表示するには、次のコマンドを発行します。

docker network ls

上記のコマンドは、Docker ネットワークを一覧表示します (図 A )。

図A

特定のネットワークの詳細情報を取得するには、コマンド docker network inspect NAME を実行します(NAME は表示したいネットワーク名です)。ブリッジネットワークの詳細を表示したい場合は、コマンドdocker network inspect bridgeを使用します。このコマンドの出力には、そのネットワークに関する必要な情報がすべて表示されます(図B)。

図B

新しいネットワークの作成

ブリッジネットワークの作成方法と、そのネットワーク上にコンテナをデプロイする方法を説明します。「isolated」というネットワークを作成します。このネットワークは、以下のコマンド1つで作成できます。

docker network create --driver bridge isolated

このコマンドの出力は、新しく作成されたネットワークの ID を表す長い文字列になります (図 C )。

図C

新しく作成されたネットワーク上で、コマンド docker network inspect isolated を使用して inspect コマンドを実行し、新しいネットワークに独自のサブネットとゲートウェイが自動的に割り当てられていることを確認します (図 D )。

図D

しかし、特定のサブネットとゲートウェイを持つネットワークを作成したい場合はどうすればよいでしょうか?それも可能です。例えば、サブネットが192.168.2.0/24、ゲートウェイが192.168.2.10、名前がnew_subnetのネットワークを作成したいとします。この場合のコマンドは以下のようになります。

docker network create --driver=bridge --subnet=192.168.2.0/24 --gateway=192.168.2.10 new_subnet

作成したら、 docker network inspect new_subnetコマンドを使用してネットワークを検査し、結果を確認します (図 E )。

図E

コンテナをネットワークに接続する

新しく作成したネットワークにコンテナを接続してみましょう。nginxイメージを既にダウンロード済みで、分離ネットワークに接続されたdocker-nginxというコンテナを起動したいとします。これを行うには、コマンドは以下のようになります。

docker run --network=isolated -itd --name=docker-nginx nginx

ここで、docker network inspect isolated コマンドを実行すると、コンテナが接続されていることがわかります (図 F )。

図F

このネットワーク上に作成する他のコンテナは、自動的に相互接続できるようになります。つまり、isolated 上にデータベースコンテナを作成すれば、同じネットワーク上の他のコンテナでも利用できるようになります。

Dockerをさらに柔軟にする

特定のネットワークを作成し、コンテナを関連付けることができるため、Dockerはさらに柔軟になります。Dockerネットワークの詳細については、Dockerの公式ネットワークドキュメントをご覧ください。非常に多くの情報が概説されています。

記事をシェア

こちらもご覧ください

  • Dockerでコンテナをエクスポートおよびインポートする方法
  • WindowsにDockerをインストールして使用する方法
  • Dockerでクリーンアップタスクを実行する4つのヒント
  • Dockerデータをホストファイルシステムに接続する方法
  • Dockerは新しいエンタープライズエディションで利益を追求する
ジャック・ウォーレンの画像

ジャック・ウォーレン

ジャック・ウォーレンは、TechRepublic、The New Stack、Linux New Mediaなどで受賞歴のあるライターです。20年以上にわたり様々なトピックを執筆し、オープンソースの熱心な推進者でもあります。ジャック・ウォーレンに関する詳細は、ウェブサイトjackwallen.comをご覧ください。

Tagged: