docker の 3 人の剣士は、swarm、compose、machine を指します。 compose は、1 つ以上のコンテナーとアプリケーションを定義して実行するために使用されるツールです。Machine は、Docker のインストールを簡素化するコマンド ライン ツールです。Swarm は、Docker クラスターをネイティブにサポートするコミュニティによって提供されるツールです。
このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
港湾コンテナ内の 3 人の剣士は、swarm、compose、machine です。
1. 概要
実際の運用環境では、アプリケーションは多くの場合、多数のコンポーネントで構成されます。 services 、Docker のベスト プラクティスでは、コンテナーは 1 つのプロセスのみを実行するため、複数のマイクロサービスを実行するには複数のコンテナーを実行する必要があります。複数のコンテナを連携させるには、それらを管理し、これらのコンテナが相互にどのように関連するかを定義するための効果的なツールが必要です。コンポーズが誕生しました。
compose は、実行および適用する 1 つ以上のコンテナ (通常は複数) を定義して実行するために使用されるツールです。 compose を使用すると、コンテナー イメージの構築とコンテナーの実行を簡素化できます。
compose は、YAML ファイルを使用して複数のコンテナ間の関係を定義します。 docker-compose up
は完全なアプリケーションを実行できます。基本的に、compose は YAML ファイルを docker コマンドのパラメータに解析し、対応する docker コマンド ライン インターフェイスを呼び出して、コンテナ化された方法でアプリケーションを管理します。コンテナ間の依存関係を解決することで、コンテナを順番に起動します。コンテナ間の依存関係は、YAML ファイルの links
タグで指定されます。
2. compose 設定の概要
Compose は docker コマンド と docker-compose.yml をカプセル化したものです。デフォルトで使用されます。このファイルは各コマンドのパラメータを指定します。
簡単な例:
web: build: . ports: - 8080:80 volumes: - . : /code links: - redis redis: image: redis
この YAML ファイルは、Web と Redis という 2 つのサービスを定義します。サービスの名前はユーザーによってカスタマイズされます。 Web サービスを提供するイメージは Dockerfile から構築されます。Web サービスはポート 80 をリッスンし、それをホストのポート 8080 にマップします。ホストの現在のディレクトリはコンテナ内の /code ディレクトリにマウントされます。Web サーバーはRedis コンテナーにリンクすることにより、バックエンド Redis データベースを作成します。 Redis データベース サービスは、Redis イメージを実行することによって提供されます。
docker-compose.yml ファイルでは、定義された各サービスに build
または image
の少なくとも 1 つが含まれており、他のコマンドはオプションです。ビルド コマンドでは、Dockerfile を含むディレクトリを指定します。これは、相対ディレクトリまたは絶対ディレクトリのいずれでもかまいません。
docker-compose.yml ファイルの「ports」タグは docker run の「-p」オプションに対応し、「volumes」タグは docker run の「-v」オプションに対応します。 「links」タグは、docker run の「--links」オプションに対応します。
また、image
はサービスのイメージを指定するために使用されます。
最後に、docker-compose.yml があるディレクトリで docker-compose up
コマンドを実行すると、Web サービスと Redis サービスが正常に実行されます。
1. 概要
Docker Machine は、Docker のインストールを簡素化するコマンド ライン ツールです。 Docker は単純なコマンド ラインを通じて対応するプラットフォームにインストールでき、ユーザーは任意のホストで Docker コンテナを実行できる柔軟な機能を提供します。簡単に言えば、Docker マシンは Docker ホストと構成された Docker クライアントの組み合わせです。
技術的に言えば、Machine はフレームワークであり、比較的オープンです。仮想マシン サービスを提供するプラットフォームでは、このフレームワークに基づいてプラットフォーム用のドライバーが開発されていれば、Docker Machine をプラットフォームに統合し、プラットフォーム上で作成、削除、起動、停止などのアクションを実行できます。
#Docker Machine のアーキテクチャを図に示します2. Machine の基本概念とプロセス
Docker Machine は、まず仮想マシンとその上に Docker ホストを作成し、次に Docker クライアントを使用して Docker ホストと通信し、Docker ホスト上にイメージを作成してコンテナーを起動します。 Docker Machine を使用して仮想マシンを作成する場合、対応するドライバーを開発する必要がありますが、現在このマシンをサポートするドライバーには、Windows 上の VirtualBox ドライバー、VMware ドライバー、Hyper-V ドライバーが含まれます。さらに、Machine はクラウド ホストの作成もサポートしています。フレームワークの仕様に準拠したドライバーを開発すれば、Docker Machine は対応するプラットフォームをサポートできます。 Machine によって作成された Docker ホストの IP アドレスは、作成された仮想マシンの IP アドレスです。Docker マシンと VirtualBox ドライバーを使用してローカル仮想マシンを作成し、Docker ホストを構築する実行プロセスは次のとおりです。
docker-machine create --driver virtualbox dev
コマンドを実行します。このコマンドは、まず Docker クライアントと Docker ホスト間の通信用の CA 証明書を作成します。次に、VirtualBox 仮想マシンを作成し、通信用の TLS パラメーターを構成してネットワークを構成し、最後に Docker オペレーティング環境、つまり Docker ホストをデプロイします。
Docker クライアントで eval "$(docker-machine env dev)"
コマンドを実行して、Docker ホスト通信に使用される環境変数を構成します。
docker 関連のコマンドを使用して、対応するコンテナーを作成または開始します。
1. 概要
Swarm は Docker ですコミュニティ Docker クラスターをネイティブにサポートするツールを提供します。複数の Docker ホストで構成されるシステムを単一の仮想 Docker ホストに変換できます。 Swarm は 2 つの API を外部に提供します。 1 つは、Dokku、Compose、Krane、Flynn、Deis、Jenkins などの標準の Docker API であり、もう 1 つは、クラスター管理に使用される Swarm のクラスター管理 API です。
Swarm ツール自体はあまり成熟していないため、運用環境での使用はお勧めできません。
そして、Google のオープンソース Kubernetes は、現在、コンテナ エコシステムで最も人気のあるオーケストレーションおよびデプロイ ツールです。
Kubernetes のアーキテクチャは、複数の Minion ノードを備えたマスター サーバーに基づいています。 K8sについてはまだ触れていないので、もう少し詳しくなってからここにまとめたいと思います。
K8s アーキテクチャ ブロック図
コンポーネントの説明:
以上が港湾労働者の三銃士とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。