docker では、YAML ファイルを実行すると、そのファイルに定義された複数のコンテナが順番に起動しますが、これがコンテナ オーケストレーションであり、コンテナ オーケストレーションを実現するツールが「docker-compose」です。 YAML ファイルは一連のコンテナーとコンテナー ランタイム プロパティを定義し、Compose はこれらの構成に基づいてコンテナーを管理します。
このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
コンテナ オーケストレーションの実装に使用されるツール
docker-compose
Docker Compose ツールをインストールすると、YAML ファイルに基づいてコンテナ オーケストレーションを実装できます。YAML ファイルは一連のコンテナとコンテナ ランタイム属性を定義し、Docker Compose はこれらの構成に基づいてコンテナを管理します。
#docker-compose をインストールします
[root@worker1 ~]# yum install epel-release -y [root@worker1 ~]# yum install docker-compose -y
docker-compose コマンドの使用方法
docker-compose.yaml ファイルを作成して 2 つのコンテナーを起動します: nginx、php
1) 環境の準備
[root@master ~]# yum install docker -y [root@master ~]# yum install epel-release -y [root@master ~]# yum install docker-compose -y [root@master ~]# systemctl restart docker [root@master ~]# systemctl restart firewalld
2) yaml ファイルを作成します
# 编写yam文件,在文件实现自动启动nginx容器 [root@worker1 ~]# vim docker-compose.yaml
version: '2' services: web: image: nginx:1.17.10 ports: - 80:80 volumes: - /opt/html:/web - /opt/conf/nginx.conf:/etc/nginx/nginx.conf
2) nginx がコンテナを開始します
[root@worker1 ~]# docker-compose up -d
yaml に基づいて表示 ファイルによって開始されたコンテナのステータス
[root@master ~]# docker-compose ps Name Command State Ports -------------------------------------------------------------- root_web_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp
コンテナの起動プロセス中にログを表示する 情報
[root@worker1 ~]# docker-compose logs
[root@worker1 ~]# docker-compose down
最初のステップ: yaml ファイルを変更します
version: '2'services:
web:
image: nginx
ports:
- 80:80
volumes:
- /opt/html:/web
- /opt/conf/nginx.conf:/etc/nginx/nginx.conf
links: # 指定php容器的名称
- php
php: # 此处需要和links中的值保持一致
image: php:5.6-fpm
container_name: php # 此处需要和links中的值保持一致
volumes:
- /opt/php:/php
[root@master ~]# vi /opt/conf/nginx.conf
location ~ \.php$ {
root /php;
fastcgi_pass php:9000; # 指定php容器名称,docker会自动将名称转换成ip
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[root@master ~]# docker-compose up -d
[root@master ~]# docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------
php docker-php-entrypoint php-fpm Up 9000/tcp
root_web_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp
4 新しいサービス mysql と wordpress を作成してください。wordpress の起動は、 mysql service
5 /opt/wordpress/data ディレクトリを mysql コンテナの /var/ にマウントします。 lib/mysql ディレクトリの下に、永続ストレージを実行します。
6 MySQL の初期情報には次が含まれます: root パスワード、作成されたデータベース、一般ユーザー、一般ユーザーのパスワード
7 WordPress データベース構成は正しいです
8 WordPress はポート マッピングを行います。 wordprss の 80 はホスト マシンのポート 8000 にマッピングされています
# 这个yaml文件要启动两个容器 version: '2' services: # 第一个容器:wordpress容器 wordpress: # 指定镜像名称 image: wordpress # 将容器的80端口映射到宿主机的8000 ports: - 8000:80 # 设置将mysql容器的名称解析程序mysql容器的IP links: - mysql # 设置容器之间依赖关系,设置成必须先启动mysql容器才启动wordpress容器 depends_on: - mysql # 第二个容器:MySQL容器 mysql: # 指定镜像名名称是mysql image: mysql:5.6 # 设置容器的名称的是mysql container_name: mysql # 设置逻辑卷挂载 volumes: - /opt/wordpress/data:/var/lib/mysql # 设置mysql容器的环境变量 environment: # 设置mysql容器中mysql的root密码为123 MYSQL_ROOT_PASSWORD: 123 # 为wordpress创建一个数据库,库名是wordpress MYSQL_DATABASE: wp # 创建一个普通用户wp MYSQL_USER: wp # 为上面的普通用户设置密码是wp MYSQL_PASSWORD: wp
9 docker-compose は各コンテナを正常に起動し、WordPress ページに正常にアクセスしました
[root@master ~]# docker-compose up -d [root@master ~]# docker ps
以上がDockerコンテナオーケストレーションとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。