0Pricing
DevOps Bootcamp · レッスン

Docker Swarm入門

Docker Swarmとは何か、どのように動作するか、そしてより簡単なデプロイを実現するコンテナオーケストレーションでの役割を理解します。

「Docker Swarm入門」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

多数のコンテナを管理する

コンテナ化されたアプリケーションが数十個稼働しているとします。それらが連携する必要がある場合はどうでしょうか。1台のマシンが故障したらどうなるでしょうか。

複数のマシンにまたがる多数のコンテナを手動で管理するのは、大きな課題になります。コンテナをオーケストレーションするシステムが必要です。

Docker Swarm入門 — イラスト1

Docker Swarmの紹介

Docker Swarmは、Dockerに組み込まれたコンテナオーケストレーションツールです。Dockerエンジンのクラスターを、統合された1つの仮想Dockerホストとして管理できます。

コンテナというオーケストラの指揮者のようなもので、それぞれが調和して動作できるようにします。

Docker Swarmを使う理由

Swarmを使うと、複数のマシンにまたがるコンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化して簡単に行えます。主なメリットは次のとおりです。

  • 高可用性: ノードに障害が発生すると、コンテナを正常なノードで再起動できます。
  • スケーリング: 需要に応じてサービスを簡単にスケールアップまたはスケールダウンできます。
  • ロードバランシング: サービスのレプリカ間でネットワーク要求を分散します。

Swarmのノード: ManagerとWorker

Docker Swarmクラスターは、異なる種類のノードで構成されます。

  • Managerノード: 司令塔にあたります。オーケストレーションタスクを処理し、アプリケーションの望ましい状態を維持し、作業を割り当てます。
  • Workerノード: 実行役にあたります。Managerノードから割り当てられた、実際のコンテナ化されたサービス(タスク)を受け取り、実行します。

サービス: アプリケーションの望ましい状態

Docker Swarmでは、アプリケーションをサービスとして定義します。サービスは、アプリケーションの望ましい状態を表します。

たとえば、「Nginxコンテナのレプリカを3つ実行し、ポート80を公開して、このボリュームをマウントする」というサービスを定義できます。

タスク: 実行中のコンテナ

サービスを作成すると、SwarmのManagerはそれを個々のタスクに分割します。各タスクは、サービスの実行中のコンテナインスタンス1つを表します。

サービスが3つのレプリカを要求すると、Managerは3つのタスクを作成し、Workerノード間に分散します。

Swarmクラスターを初期化する

新しいSwarmを開始するには、Dockerエンジン上で初期化します。このコマンドによって、そのエンジンが新しいSwarmの最初のManagerノードになります。

また、他のノードが参加するためのトークンも提供されます。

docker swarm init

Swarmクラスターに参加する

Swarmを初期化したら、さらにマシンを追加できます。これらのマシンは通常、タスクを実行する準備が整ったWorkerノードとして参加します。

docker swarm initで提供されたトークンとManagerのIPを使い、`docker swarm join`コマンドを実行します。

docker swarm join --token SWMTKN-1-...
  192.168.1.100:2377

Swarmノードを確認する

任意のManagerノードから、Swarmノードの状態を確認できます。このコマンドを実行すると、クラスターに属するすべてのノード、そのロール、状態が一覧表示されます。

Swarmの健全性を監視するのに役立つ方法です。

docker node ls

Swarmの概念チェック

次のうち、Docker SwarmにおけるManager Nodeの主な役割を最もよく説明しているものはどれですか?

Swarm入門の振り返り

このレッスンでは、Dockerに標準搭載されているオーケストレーションツール、Docker Swarmについて学びました。コンテナクラスターの管理における目的と、次の主要なコンポーネントについて確認しました。

  • Manager Nodes:オーケストレーションを行い、状態を維持します。
  • Worker Nodes:タスク(コンテナ)を実行します。
  • Services:アプリケーションの望ましい状態を定義します。
  • Tasks:実行中の個々のコンテナインスタンスです。

また、Swarmを初期化してノードを追加する方法も確認しました。

よくある質問

「Docker Swarm入門」レッスンは無料ですか?

はい。「Docker Swarm入門」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「Docker Swarm入門」で何を学びますか?

Docker Swarmとは何か、どのように動作するか、そしてより簡単なデプロイを実現するコンテナオーケストレーションでの役割を理解します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Docker Swarm入門」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Docker Swarm入門
  2. Swarmクラスターのセットアップ
  3. Swarmへのサービスのデプロイ
  4. Swarmでのスケーリングとローリングアップデート
← DevOps Bootcampに戻る