コンテナオーケストレーションとは何ですか?
たとえば、以下は、Nginxサービス、Tomcatサービス、およびMySQLサービスの3つのコンテナーをデプロイする必要があるホストマシンです。その中で、Nginxはtomcatに負荷分散とリバースプロキシ機能を提供します。TomcatはJavaWebプログラムを実行します。このJavaWebプログラムは、データアクセスをMySQLに依存しています。このアプリケーショングループはオンラインである必要があります。手動で処理する場合は、MySQLサービスを実行するコンテナを起動し、Tomcatコンテナを起動して、最後にNginxコンテナを起動する必要があります。また、コンテナ構成ファイルを手動で設定し、コンテナ間の依存関係を構成する必要がありますが、これは非常に面倒です。コンテナオーケストレーションツールは、スクリプトファイルを解析することにより、上記のプロセスを自動的に実行できます。コンテナーのデプロイやコンテナー間の関係などに必要な構成ファイルをスクリプトに書き込むだけで、残りはオーケストレーションツールによって自動的に実行できます。
コンテナーオーケストレーションは、複数のコンテナーのデプロイメントプロセスを制御するプロセスです。
DockerCompose
Docker Composeは、Dockerが正式に提供するコンテナオーケストレーションツールであり、以下の特徴があります。
- スタンドアロンのみをサポート
- ymlファイルを介して複数のコンテナー間でデプロイする方法を定義します
インストール
# 先安装docker-compose,下面使用国内镜像
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 然后授予权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看是否正确安装
docker-compose -version
docker-composeのインストールが成功しました。練習用に、WordPressのデプロイを始めましょう。
WordPressをデプロイする
# 在宿主机创建目录
mkdir wordpress
# 进入该目录
cd wordpress
# 创建yml文件
vim docker-compose.yml
# yml文件中填写如下信息,下面的信息在docker官方网站的教程上能够找到
# https://docs.docker.com/compose/wordpress/
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {
}
# 运行
docker-compose up -d
# 会自动解析刚才创建的docker-compose.yml ,并且以后台进程形式运行
ログを見て、最初にmysqlミラーをプルします
次に、ワードプレスミラーを引っ張り始めます
最後に、2つのコンテナが開始されたことがわかります
この時点で、ブラウザがホストのポート8000にアクセスすると、wordpressが正常に構築されていることがわかります。
このdocker network ls
コマンドを使用すると、docker-composeがワードプレスのブリッジを自動的に作成することがわかります。
このブリッジの詳細情報を確認すると、wordpressappとdbの2つのコンテナーがこのブリッジにバインドされていることがわかります。
WordPressグループのアプリケーションをオフにするには、を使用しますdocker-compose down
。docker-composeを使用して複数のアプリケーションのセットを起動しdocker-compose down
、それらを直接使用する場合、どのアプリケーションのセットが閉じられているかをどのようにして知ることができますか?
答えは、それdocker-compose down
を使用するときは、最初にdocker-compose.yml構成ファイルのあるディレクトリに切り替える必要があるということです。現在のディレクトリのdocker-compose.ymlファイルに基づいて、閉じる必要のあるアプリケーションのグループを決定します。
別の->を使用docker-compose logs
してアプリケーションのログを表示できますが、この方法でログを表示すると、複数のアプリケーションのログが混在して表示されます。アプリケーションのログを個別に表示する場合は、次を使用できます。docker-compose logs 容器名称
一般に、docker-composeは単一のマシンのみをサポートし、クラスターをサポートしないため、実稼働環境ではアプリケーションが比較的少なくなります。したがって、本番環境では、kubernetesなどのクラスターをサポートするコンテナーオーケストレーションツールが一般的に使用されます。
もう1つ->コンテナ化されたproduct-podmanがあります。これはdockerに似ており、dockerコマンドでシームレスに切り替えることもできますが、csアーキテクチャを採用していないため、いくつかの点でdockerよりも優れているようです。適切な理解を行う