出版

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