(1/3)複数の物理サーバで稼働するDockerコンテナ同士が通信するには、どうすればよいのでしょうか。そのためには、Docker特有のコンポーネントを理解する必要があります。今回は、Docker環境のネットワーキングを実現するソフトウェアコンポーネントと具体的なコンテナ間の通信方法を紹介します。});複数の物理サーバで稼働するコンテナ同士の通信Dockerの登場以来、コミュニティーで盛んに議論されていた話題の一つに、複数の物理サーバで稼働するコンテナ同士の通信(一般的にマルチホストネットワークといいます)があります。この連載で紹介していた内容は、全て1台の物理サーバでコンテナを稼働させるものでした。実際のエンタープライズシステムでは複数の物理サーバを用意し、その上で稼働するコンテナ同士で通信を行うことがシステムの要件として求められます。複数の物理サーバで稼働するコンテナ同士でTCP/IP通信を行う方法としては、主に以下の2種類のネットワーク構成が挙げられます。オーバレイネットワーク(VXLAN)ブリッジ接続によるネットワーク1つ目のオーバレイネットワークによる方法では、簡単に言えば、Dockerホストが提供するdocker0によるブリッジインタフェースが所属する既存ネットワークとは別に、Dockerコンテナ同士が通信する仮想的なネットワークを構築します。オーバレイとは「かぶせる」という意味ですが、既存のネットワーク上にさらにコンテナ同士の通信専用ネットワークをかぶせるイメージから、「オーバレイネットワーク」と呼ばれています。このオーバレイネットワークは、既存の物理NICやdocker0ブリッジの設定を変更せずにコンテナ通信用のネットワークを形成し、柔軟性の高いソフトウェア定義型ネットワークを構築することができます。Network)よって実現されています。VXLANは、レイヤ3(L3)のネットワーク上に論理的なレイヤ2(L2)ネットワークを構築できるトンネリングプロトコルであり、大規模なデータセンターでのマルチテナント環境を意識した設計になっています。VXLAN自体はOpenStackなどでも採用されており、ソフトウェア定義型ネットワーク(SDN)を構成するクラウド基盤では必要不可欠となっています。Swarm従来のDocker環境でオーバレイネットワークを実現するには、ネットワーク情報を保持するためのDocker純正ではないサードパーティ製の「分散キーバリューストア」(consulやetcdと呼ばれるソフトウェアなど)が必要でした。1.12によって不要になりました。Swarm」(ドッカー・スウォーム)がDockerエンジンにビルトインされ、複数の物理サーバからなるオーバレイネットワークを簡単に構築できるようになりました。Swarmに所属するDockerコンテナ間でネットワーク通信ができるようになったのです。Swarmは、複数のDockerホストを束ねて一つのクラスタを形成するためのソフトウェアコンポーネントです。1.11までは、Dockerエンジンとは別のソフトウェアコンポーネントとして配布されていました。今回からDocker環境のネットワーキングに迫ります。ネットワーキングと聞くと、とても難解なイメージがあるかもしれませんが要素技術は非常に重要です。従来の物理システムと異なる点もあるDockerのネットワーキングについて、まずは基本を解説します。標準的なネットワークを理解する引き続きDocker環境におけるネットワーキングの基礎を解説します。今回は、Dockerでの標準的なネットワークを例に、手順を交えながらその構成がどうなっているのかを理解していきましょう。1つのDockerコンテナでサービスをたくさん動かすには?(基礎編)サービスを稼働させる上で、ハイパーバイザ型の仮想化環境とDockerコンテナの環境では大きな違いがあります。基礎知識から解説しましょう。広告に関するお問い合わせメールマガジンSpecialインデックスRSSfacebooktwitter利用規約ITmediaはアイティメディア株式会社の登録商標です。