Docker.v19 で Docker Compose オーケストレーション ツールをインストールして構成する方法

Docker.v19 で Docker Compose オーケストレーション ツールをインストールして構成する方法

1. Compose の紹介

Compose は、マルチコンテナ Docker アプリケーションを定義および実行するためのツールです。 Compose を使用すると、YAML ファイルを使用してアプリケーションのサービスを構成できます。その後、1 つのコマンドで、構成からすべてのサービスを作成して起動できます。

Docker-Compose はコンテナ オーケストレーション ツールです。 .yml または .yaml ファイルを通じて、すべてのコンテナの展開方法、ファイル マッピング、コンテナ ポート マッピングなどが構成ファイルに書き込まれます。docker-compose up コマンドを実行することは、コンテナを 1 つずつインストールして展開するスクリプトを実行することに似ています。

YAML ファイルの基本的な構文は次のとおりです。

  • 大文字と小文字を区別;
  • 階層関係を示すにはインデントを使用します。
  • インデントにはタブは使用できません。スペースのみ使用できます。
  • 同じレベルの要素が左揃えになっている限り、インデントのスペース数は重要ではありません。
  • 「#」はコメントを示します。

Dockerfile を使用すると、ユーザーは単一のアプリケーション コンテナーを管理できます。一方、Compose を使用すると、次のように、Web サービス コンテナーとバックエンド データベース サービス コンテナーなど、関連するアプリケーション コンテナーのグループをテンプレート (YAML 形式) で定義できます。

Docker Compose は、管理対象コンテナを 3 つのレイヤーに分割します。

  • プロジェクト;
  • サービス;
  • 容器;

docker compose 実行ディレクトリ内のすべての yml ファイルはプロジェクトを構成します。プロジェクトには複数のサービスが含まれます。各サービスは、コンテナ操作のイメージ、パラメーター、依存関係を定義します。サービスには複数のコンテナ インスタンスを含めることができます。

Docker-compose は Docker コンテナのオーケストレーション ツールであり、主に相互に依存する複数のコンテナを管理するために使用されます。

2. Dockerをインストールする

サーバーはCentOS7.4、Dockerバージョンは19.03.9です

1. Dockerバージョン19.03.9をインストールする

[root@centos01 ~]# cd /etc/yum.repos.d/ 
[root@centos01 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo   
   <!--Centos7 ソースをダウンロード-->
[root@centos01 yum.repos.d]# curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.ce.repo  
    <!--docker ソースの最新バージョンをダウンロード-->
[root@centos01 ~]# yum -y install docker-ce yum-utils device-mapper-persitent-data lvm2  
 <!--docker および docker-ce の依存関係をインストールします-->
[root@centos01 ~]# docker version <!--docker バージョンを表示-->
クライアント: Docker Engine - コミュニティ
 バージョン: 19.03.9
 APIバージョン: 1.40
 Goバージョン: go1.13.10
 Gitコミット: 9d988398e7
 作成日: 2020年5月15日金曜日 00:25:27
 OS/アーキテクチャ: linux/amd64
 実験的: 偽

サーバー: Docker Engine - コミュニティ
 エンジン:
 バージョン: 19.03.9
 API バージョン: 1.40 (最小バージョン 1.12)
 Goバージョン: go1.13.10
 Gitコミット: 9d988398e7
 作成日: 2020年5月15日金曜日 00:24:05
 OS/アーキテクチャ: linux/amd64
[root@centos01 ~]# systemctl start docker <!--docker サービスを開始します-->
[root@centos01 ~]# systemctl enable docker <!--自動起動を設定する-->

2. 画像アクセラレーションを設定する

次に、Daoyun が提供するダウンロード画像加速機能を有効にします (Ali もこの機能を提供しているため、ここでは Daoyun についてのみ説明します)。
DaoyunアクセラレータURL: https://www.daocloud.io/
プロセスは次のとおりです。

1) Daoyunの公式ウェブサイトにアクセスします。

2) ユーザーとして登録し、ログインします。

最初の 2 つの手順を完了したら、次の手順に従ってください。

次のインターフェースが表示されたら、ページを下にドラッグします。

ここにドラッグして、システムのバージョンに応じて対応するコマンドをコピーします (Linux サーバーの場合は、次の行をコピーします)。

[root@centos01 ~]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io <!--コピーしたコマンドを貼り付けます-->
docker バージョン >= 1.12
{"レジストリミラー": ["http://f1361db2.m.daocloud.io"]}
成功。
有効にするにはdockerを再起動する必要があります: sudo systemctl restart docker
[root@centos01 ~]# cat /etc/docker/daemon.json <!--アクセラレーションが正常に構成されているかどうかを確認します-->
{"レジストリミラー": ["http://f1361db2.m.daocloud.io"]}
[root@centos01 ~]# systemctl restart docker <!--docker サービスを再起動します-->

3. Docker Composeをインストールして使用する

1. GithubからDocker Composeをダウンロードする

コンテナ オーケストレーション ツール Compose を使用する場合は、docker サービスに基づいている必要があり、docker-compose コマンドをダウンロードする必要があります。次のように、公式 github Web サイトにアクセスして「docker Compose」を検索します。

Compose ツールをダウンロードするときは、まずマシンの Docker バージョンを確認する必要があります。

[root@centos01 ~]# docker -v
Docker バージョン 19.03.9、ビルド 9d988398e7

docker のバージョンが低すぎる場合は、docker-compose ツールの他のバージョンを自分で見つけることができます。適切なバージョンを選択したら、GitHub Web サイトにあるコマンドを実行します。

[root@centos01 ~]#curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@centos01 ~]#chmod +x /usr/local/bin/docker-compose

2. DaoyunからDocker Composeをダウンロードする

ネットワーク速度が遅いためにダウンロードが失敗した場合は、次のダウンロード方法を選択できます。(個人的には次のダウンロード方法をお勧めします)

まず、次のように Daoyun の公式 Web サイトにアクセスしてダウンロードします。

[root@centos01 ~]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
     <!--コピーしたコマンドを貼り付けて、Docker Compose をダウンロードします-->
[root@centos01 ~]# docker-compose -v <!--Docker Compose のバージョンを表示-->
docker-compose バージョン 1.25.5、ビルド 8a1c60f6

URL のバージョンを変更することで、必要なバージョンをカスタマイズできます。上記の 2 つのコマンドを実行すると、docker-compose オーケストレーション ツールを使用できるようになります。

4. .ymlファイルを書く

1. シンプルな Nginx サービスを構築するための .yml ファイル

[root@centos01 ~]# vim /root/.vimrc
タブストップを2に設定
[root@centos01 ~]# ソース /root/.vimrc
<!--タブキーはより頻繁に使用されるため、2つのスペースを表すタブキーがあらかじめ設定されています-->
[root@centos01 ~]# mkdir docker_compose 
    <!--docker-compose.yml ファイルを保存するためのテスト ディレクトリを作成します-->
[root@centos01 ~]# cd docker_compose/ <!--共通ディレクトリへ移動-->
<!-- ディレクトリ内に docker-compose.yml ファイルを 1 つだけ配置することをお勧めします -->
[root@centos01 docker_compose]# vim docker-compose.yml  
  <!--docker-compose.yml ファイルを作成します-->
バージョン: "3" <!-- バージョンを作成 -->
サービス: <!--サービスを定義する-->
 nginx:
  container_name: nginx <!--実行中のコンテナ名-->
  image: nginx:latest <!-- 使用した画像 -->
  restart: always <!--docker サービスの起動から開始します-->
  ポート:
   - 80:80 <!--マップされたポート-->
  ボリューム:
   - /root/compose_test/webserver:/usr/share/nginx/html     
      <!--ローカルおよびコンテナにマウントされたディレクトリ-->
<!-- ファイルを書き込むときはインデントに注意してください -->   
[root@centos01 docker_compose]# docker-compose up -d
<!--現在のディレクトリにある docker-compose.yml ファイルを使用して、対応するコンテナを生成します-->
<!--"-d" オプションはバックグラウンドで実行することを意味します。指定しない場合は、デフォルトでフォアグラウンドで実行され、ターミナルを占有します。 -->
[root@centos01 docker_compose]# docker ps <!--実行中のコンテナを表示-->
コンテナID イメージ コマンド 作成ステータス ポート名
a4d71936dd12 nginx:latest "nginx -g 'daemon of..." 46 秒前 45 秒前にアップ 0.0.0.0:80->80/tcp nginx
[root@centos01 docker_compose]# echo "www.docker-compose.com" > webserver/index.html
    <!--テスト Web ページを作成する-->
[root@centos01 docker_compose]# curl http://192.168.100.10 <!--アクセステスト-->
出典: docker
[root@centos01 docker_compose]# docker-compose stop <!--.yml ファイルで指定されたコンテナを停止します-->
nginx を停止しています...完了
[root@centos01 docker_compose]# docker ps <!--コンテナが停止しているかどうかを確認します-->
コンテナID イメージ コマンド 作成ステータス ポート名
[root@centos01 ~]# docker-compose -f docker_compose/docker-compose.yml アップ -d
<!--「-f」オプションを使用して、yml ファイルのスタートアップ ファイルで定義されたコンテナーを指定できます -->

2. ミラーを構築するための Compose+Dockerfile

[root@centos01 ~]# mkdir compose && cd compose <!--テストディレクトリを作成して入力します-->
[root@centos01 compose]# vim Dockerfile <!--dockerfile を作成-->
FROM nginx:latest <!--ベースイメージ-->
html /usr/share/nginx/html を追加します 
[root@centos01 compose]# vim docker-compose.yml <!--yml ファイルを書き込みます-->
バージョン: '3'
サービス:
 nginx:
  build: . <!--ここでdockerfileのパスを指定します。相対パスまたは絶対パスを記述できます--> 
  container_name: nginx001 <!--生成されたコンテナ名-->
  image: nginx001 <!--Dockerfile を使用して生成されたイメージ名-->
  restart: always <!--docker サービスの起動から開始します-->
  ポート:
   - 8080:80 <!--マップされたポート-->
[root@centos01 compose]# mkdir html <!--Web サイトのルート ディレクトリを作成します-->
[root@centos01 compose]# echo "www.nginx.8080.com" > html/index.html <!--ホームページのテストコンテンツを書き込みます-->
[root@centos01 compose]# docker-compose up -d <!--コンテナを生成-->
[root@centos01 compose]# docker ps <!--コンテナを表示-->
コンテナID イメージ コマンド 作成ステータス ポート名
1428cd1ab7de nginx001 "nginx -g 'daemon of..." 約 1 分前 起動 約 1 分 0.0.0.0:8080->80/tcp nginx001
a4d71936dd12 nginx:latest "nginx -g 'daemon of..." 18 分前 15 分前に起動 0.0.0.0:80->80/tcp nginx
[root@centos01 compose]# docker images <!--イメージを表示-->
リポジトリ タグ イメージ ID 作成 サイズ
nginx001 最新 55b8bd0a4a59 約1分前 127MB
nginx 最新 9beeba249f3e 5日前 127MB
[root@centos01 compose]# curl http://192.168.100.10:8080 <!--アクセステスト-->
nginx.8080.com より
[root@centos01 compose]# docker-compose stop <!--コンテナを停止-->
nginx001 を停止しています...完了
[root@centos01 ~]# docker-compose -f compose/docker-compose.yml アップ -d   
      <!-- -f で .yml ファイルを指定してコンテナを実行します -->
nginx001 を起動しています...完了

3. .ymlファイルを使用してブログプラットフォームを構築する

[root@centos01 ~]# mkdir wordpress && cd wordpress <!--テストディレクトリを作成します-->
[root@centos01 wordpress]# vim docker-compose.yml <!--yml ファイルを書き込みます-->
バージョン: '3.1' 
サービス:
 ワードプレス:
  image: wordpress <!--使用する画像を指定します-->
  再起動: 常に
  ポート:
   - 1111:80 <!--マップされたポートを指定します-->
  environment: <!--コンテナ内の環境変数を変更します-->
   WORDPRESS_DB_HOST: mysql
   WORDPRESS_DB_USER: ワードプレス
   WORDPRESS_DB_パスワード: pwd@123
   WORDPRESS_DB_NAME: ワードプレス
 マイスク:
  イメージ:mysql:5.6
  再起動: 常に
  コマンド: --character-set-server=utf8 <!--中国語をサポート-->
  環境:
   MYSQL_ROOT_PASSWORD: pwd@123 <!--root アクセス データベース パスワード -->
   MYSQL_DATABASE: wordpress <!--wordpress データベースを作成-->
   MYSQL_USER: wordpress <!--ユーザー名-->
   MYSQL_PASSWORD: pwd@123 <!--ユーザーアクセスパスワード-->
[root@centos01 wordpress]# docker-compose up -d <!--対応するコンテナを生成し、バックグラウンドで実行します-->
[root@centos01 wordpress]# docker ps <!-- 実行中のコンテナを表示します -->
コンテナID イメージ コマンド 作成ステータス ポート名
a93858ade399 wordpress "docker-entrypoint.s..." 28 秒前 27 秒前にアップ 0.0.0.0:1111->80/tcp wordpress_wordpress_1
cec94e3bd0ee mysql:5.6 "docker-entrypoint.s..." 28 秒前 27 秒前 3306/tcp wordpress_mysql_1
[root@centos01 wordpress]# docker images <!--画像を表示-->
リポジトリ タグ イメージ ID 作成 サイズ
mysql 5.6 9e4a20b3bbbc 10時間前 302MB
wordpress 最新 675a​​f3ca3193 5日前 540MB
[root@centos01 wordpress]# netstat -anptu |grep 1111 <!--ポート1111がリッスンしていることを確認します-->
tcp6 0 0 :::1111 :::* 119795/docker-proxyを聴く
[root@centos01 wordpress]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 
      <!--ルーティング機能を有効にする-->
[root@centos01 wordpress]# sysctl -p <!--設定を更新-->
ネット.ipv4.ip_forward = 1

クライアントアクセス http://192.168.100.10:1111

基本情報を設定します:

インストールが完了しました。ログインしてください:

ユーザー名とパスワードを入力してください:

フォントを簡体字中国語に変更します。

Docker.v19 のインストール方法と Docker Compose オーケストレーション ツールの設定方法についてはこれで終わりです。Docker のインストールと Docker Compose の設定の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker Compose 構成ファイルの記述とコマンドの使用例
  • Docker Compose を使用して ElasticSearch 構成プロセスを構築およびデプロイする
  • Docker-compose インストール yml ファイルの設定方法
  • docker compose を使ってワンクリックで分散構成センター Apollo を展開するプロセスの詳細な説明
  • Jenkins の docker-compose デプロイメントと構成に関する詳細なチュートリアル
  • Spring環境を構成するためのDocker-composeの手順
  • Linux で docker-compose を使用したソフトウェア構成の詳細な説明
  • Docker Compose 構成ファイルパラメータの詳細な説明

<<:  Vue ベースの Excel 解析とエクスポートの詳細な説明

>>:  重複データの処理に関するMySQL学習ノート

推薦する

MYSQLについては、データ型と操作テーブルを知る必要があります

データ型と操作データテーブル1.1 MySQL 型: 整数 1.2 MySQL データ型: 浮動小数...

Centos7.X Linux システムに tomcat8 をインストールするためのグラフィック チュートリアル

1. Tomcatのインストールパスを作成する mkdir /usr/local/tomcat 2....

Linux 上のカラフルな猫

Linux システムを使用したことがある友人なら、 catコマンドを使用したことがあるはずです。もち...

MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...

MySQL の分離レベルの包括的な分析

データベースが同じデータ バッチを同時に追加、削除、および変更すると、ダーティ書き込み、ダーティ読み...

Vue3 Vue CLI マルチ環境設定

目次1. はじめに2. 切り替え1. 開発および本番環境の設定ファイルを追加する2. 複数の環境をサ...

Vueにおけるキーの役割と原理の詳細な説明

目次1. 結論から始めましょう2. キーの役割2.1 例2.2 上記の例を修正する2.3 例を再度修...

JavaScript の例におけるループの使用法の詳細な説明

退屈だったので、ループに関する簡単な演習をいくつかまとめてみました。JS を学び始めたばかりの方に役...

分散監視システムZabbixはSNMPとJMXチャネルを使用してデータを収集します

前回の記事では、Zabbix のパッシブ、アクティブ、Web 監視に関するトピックについて学習しまし...

Linux 脆弱性スキャンツール lynis の使用分析

はじめに: Lynis は、徹底的なセキュリティ スキャンを実行できる Unix システム用のセキュ...

サイトマップをウェブページの下部に配置するメリットと例

以前は、ほとんどすべての Web サイトに、すべてのページをリストしたサイトマップ ページがありまし...

VMware Esxi のルート パスワードを忘れた後に正常に取得する方法

CentOS6 インストール ディスク (任意のバージョン) を準備するか、別の pnux インスト...

Nginxを使ってサーバー内で複数コンテナの共存を実現する方法

背景Tencent Linux クラウド ホストがあり、その上に Docker (ServiceDo...

JavaScript を使用したコマンドライン アプリケーションの構築

目次1. ノードをインストールする2. Commander.jsをインストールする3. JavaSc...

シンプルなフロントエンドのページング効果を実現する js

比較的シンプルな業務のプロジェクトもありますが、フロントエンドのページングを多用します。プラグインの...