ニュース
第31回 Docker Swarmクラスタのオーバレイネットワークを構築する方法:古賀政純の「攻めのITのためのDocker塾」(6/7 ページ)
複数の物理サーバで稼働するコンテナ同士の通信を可能にするには、Docker Swarmを用いたオーバレイネットワークを構築します。前回はその概要について解説しましたが、今回はこの環境を構築する方法を紹介します。
別のコンテナを起動してみる
Webサーバ入りのDockerコンテナを、ワーカノードn0122で稼働させることができました。同様に、ワーカノードのn0123にCentOS 7.2のOSテンプレートイメージからDockerコンテナを起動し、n0122上で稼働するWebサーバ入りのコンテナにアクセスできるかテストしてみます。マネージャノード上で、「docker service」を使って、ワーカノードn0123にCentOS 7.2のコンテナ「test02」を稼働させます。
n0121 # docker service create \ --name test02 \ ←コンテナ名 --constraint 'node.hostname == n0123' \ ←ワーカノード「n0123」でコンテナを起動 --network mynet01 \ ←コンテナはオーバレイネットワーク「mynet01」に所属させる centos:centos7.2.1511 tail -f /dev/null ←CentOS 7.2のイメージを指定し、tailで稼働を持続
CentOS 7.2のOSイメージからコンテナを起動しますが、コンテナの稼働を持続させるため「tail -f /dev/null」を入れています。先ほどと同様に、「docker service ls」と「docker service ps」で状況を確認してみましょう。
n0121 # docker service ls ID NAME REPLICAS IMAGE COMMAND 9tfne7ujen3p test01 1/1 larsks/thttpd cekmq75s52sd test02 1/1 centos:centos7.2.1511 tail -f /dev/null
CentOS 7.2のOSテンプレートから起動したサービスが「test02」として稼働していることが分かります。起動したサービス「test02」がどのノードで稼働しているかを確認します。
n0121 # docker service ps test02 ID NAME IMAGE NODE DESIRED STATE ... 9s9m5j6dkweqrufb12wany6tt test02.1 centos:centos7.2.1511 n0123 Running ...
ワーカノード「n0123」でコンテナが稼働していることが分かります。念のために、ワーカノード「n0123」上でも確認しておきます。
n0123 # docker ps -a CONTAINER ID IMAGE COMMAND ... NAMES 56dfaa68f9b4 centos:centos7.2.1511 "tail -f /dev/null" ... test02.1.9s9m5j6dkweqrufb12wany6t
関連記事
- 第30回 Docker Swarmを知る 複数の物理サーバでDocker環境をクラスタ化する方法
複数の物理サーバで稼働するDockerコンテナ同士が通信するには、どうすればよいのでしょうか。そのためには、Docker特有のコンポーネントを理解する必要があります。今回は、Docker環境のネットワーキングを実現するソフトウェアコンポーネントと具体的なコンテナ間の通信方法を紹介します。 - 第28回 Docker Networkingの基礎知識 ソフトウェア定義型時代の到来
今回からDocker環境のネットワーキングに迫ります。ネットワーキングと聞くと、とても難解なイメージがあるかもしれませんが要素技術は非常に重要です。従来の物理システムと異なる点もあるDockerのネットワーキングについて、まずは基本を解説します。 - 第29回 Docker Networkingの基礎知識 標準的なネットワークを理解する
引き続きDocker環境におけるネットワーキングの基礎を解説します。今回は、Dockerでの標準的なネットワークを例に、手順を交えながらその構成がどうなっているのかを理解していきましょう。 - 【古賀政純の「攻めのITのためのDocker塾」】バックナンバー
Copyright © ITmedia, Inc. All Rights Reserved.