第31回 Docker Swarmクラスタのオーバレイネットワークを構築する方法:古賀政純の「攻めのITのためのDocker塾」(5/7 ページ)
複数の物理サーバで稼働するコンテナ同士の通信を可能にするには、Docker Swarmを用いたオーバレイネットワークを構築します。前回はその概要について解説しましたが、今回はこの環境を構築する方法を紹介します。
Swarmクラスタにおけるサービスの確認
起動したDockerコンテナの状況を確認してみましょう。起動したサービスは、マネージャノードから「docker service」にlsを付与して実行します。
n0121 # docker service ls ID NAME REPLICAS IMAGE COMMAND 9tfne7ujen3p test01 0/1 larsks/thttpd
上記から、Dockerイメージ「larsks/thttpd」からtest01というサービスが生成されたことが分かります。この「test01」というサービスがワーカノードn0122に存在するかも確認します。起動したサービスがいったいどのノードで実行されているかどうかを確認するには、「docker service ps」にサービス名を付与して実行します。
n0121 # docker service ps test01 ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ... bxaueu6be9a3itjkk13ekd2hg test01.1 larsks/thttpd n0122 Running Running 6 minutes ago
サービス「test01」は、Dockerイメージ「larsks/thttpd」を元に、Dockerコンテナが起動していることが分かります。コンテナ名は「NAME」例に表示されており、「test01.1」というコンテナ名が付与されていることを確認できます。また、ワーカノード「n0122」でコンテナが実行されていることも分かります。念のため、従来の「docker ps」コマンドでもコンテナの状態を確認しておきましょう。ワーカノードn0122上で確認してみます。
n0122 # docker ps -a CONTAINER ID IMAGE COMMAND ... NAMES a320c65b648a larsks/thttpd:latest "/thttpd -D -l /dev/s" ... test01.1.bxaueu6be9a3itjkk13ekd2hg
「docker ps -a」でコンテナの状況を確認してみると、先ほどの「docker service ps test01」で得られるNAME列の「test01.1」とID列の「bxaueu6be9a3itjkk13ekd2hg」を「.」でつなげた名前「test01.1.bxaueu6be9a3itjkk13ekd2hg」がコンテナ名として自動的に付与されていることが分かります。
以上で、Swarmクラスタのワーカノード「n0122」でWebサーバ入りのコンテナを起動することができました。
関連記事
- 第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.