Dockerコンテナオーケストレーションとは何ですか

青灯夜游
リリース: 2021-12-30 16:24:57
オリジナル
4882 人が閲覧しました

docker では、YAML ファイルを実行すると、そのファイルに定義された複数のコンテナが順番に起動しますが、これがコンテナ オーケストレーションであり、コンテナ オーケストレーションを実現するツールが「docker-compose」です。 YAML ファイルは一連のコンテナーとコンテナー ランタイム プロパティを定義し、Compose はこれらの構成に基づいてコンテナーを管理します。

Dockerコンテナオーケストレーションとは何ですか

このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。

Docker コンテナ オーケストレーション

コンテナ オーケストレーションとは
  • ファイルを実行すると、そのファイルに定義されている複数のコンテナが順番に起動され、これはコンテナ オーケストレーションです
  • このファイルは yaml ファイルです

コンテナ オーケストレーションの実装に使用されるツール

  • docker-compose

    Docker Compose ツールをインストールすると、YAML ファイルに基づいてコンテナ オーケストレーションを実装できます。YAML ファイルは一連のコンテナとコンテナ ランタイム属性を定義し、Docker Compose はこれらの構成に基づいてコンテナを管理します。

#docker-compose をインストールします

    docker-compose を epel ソースにインストールします
  • [root@worker1 ~]# yum install epel-release -y
    [root@worker1 ~]# yum install docker-compose -y
    ログイン後にコピー

docker-compose コマンドの使用方法

  • 形式: docker-compose [options]

  • options

      up: yaml ファイルで定義されたコンテナを開始します
    • down: yaml ファイルで定義されたコンテナを閉じます
    • -f x.yaml: yaml ファイルを読み取るために docker-compose を指定します
    • -d: バックグラウンドで操作を実行します。
    • ps: docker-compose に基づいてコンテナの起動ステータスを確認します。
    • logs: 起動プロセス中のログを確認します。コンテナー エラーのトラブルシューティングに関する情報
Case:

docker-compose.yaml ファイルを作成して 2 つのコンテナーを起動します: nginx、php

1) 環境の準備

    epelのインストール
  • docker-composeのインストール
  • docker を再起動します
  • ファイアウォールを再起動します
  • [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
ログイン後にコピー

    version: バージョン番号を指定します、2
  • services: サービスを開始するように設定します。サービスは Docker コンテナです

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
ログイン後にコピー

    ステータスは主に状態です。UP の場合は正常を意味します

コンテナの起動プロセス中にログを表示する 情報

[root@worker1 ~]# docker-compose logs
ログイン後にコピー

#yaml ファイルに基づいて起動したコンテナを閉じる

[root@worker1 ~]# docker-compose down
ログイン後にコピー

3) 2 番目のステップに基づいて yaml ファイルを編集し、php サービスを開始します

最初のステップ: 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
ログイン後にコピー

2 番目のステップ: nginx 構成ファイルを変更する

[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;
        }
ログイン後にコピー

ステップ 3: サービスを開始する

[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
ログイン後にコピー
コンテナ オーケストレーション アプリケーションの質問 1

1 準備するCentos7 サーバーをインストールし、ネットワークが正常であることを確認します

  • #2 サーバー Docker が正常に動作しているかどうかを確認します。正常に動作していない場合は、インストールしてください

  • 3 wordpress.yml テンプレート ファイルを作成してください。形式は正しいです。

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
ログイン後にコピー

ブラウザ アクセス: http:// ip:8000
  • 推奨学習: 「
docker ビデオ チュートリアル

以上がDockerコンテナオーケストレーションとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!