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学習ノート

推薦する

Docker はキューとタスクのスケジューリングを実現するために Laravel アプリケーションをデプロイします

前回の記事では、Docker を使用して Laravel アプリケーションをデプロイする方法について...

three.js で 3D ダイナミック テキスト効果を実現する方法

序文みなさんこんにちは。CSS ウィザードの alphardex です。以前、海外のウェブサイトを閲...

MySQLの暗黙的な変換について話す

作業の過程で、暗黙的な変換が発生するケースが数多くあります。暗黙的な変換は、クエリの速度低下を引き起...

MySQLの累積集計原理と使用例の分析

この記事では、例を使用して、MySQL 累積集計の原理と使用方法を説明します。ご参考までに、詳細は以...

Windows Server 2008 R2 サーバーが理由もなく自動的に再起動する問題の解決策

Windows Server 2008 サーバーが自動的に再起動します。サーバーにログインした後、ど...

Linuxコマンド履歴の調整方法の詳細な説明

Linux システムの bash history コマンドは、以前に実行したコマンドを記憶し、再入力...

CSS 標準: vertical-align プロパティ

<br />原文: http://www.mikkolee.com/13私は最近、ver...

MySQL5.7 マスタースレーブ構成例の分析

MySQL5.7マスタースレーブ構成の実装方法、具体的な内容は次のとおりですインストール環境:マスタ...

CSS の 6 つの重要なセレクター (3 秒で覚える)

出典: https://blog.csdn.net/qq_44761243/article/deta...

MySQL 8.0.15 圧縮版インストール グラフィック チュートリアル

この記事では、参考までにMySQL 8.0.15圧縮版のインストール方法を紹介します。具体的な内容は...

MySQL が大規模トランザクションを避けるべき理由とその解決方法

何が大問題ですか?長時間実行され、長時間コミットされないトランザクションは、大規模トランザクションと...

MySQL 5.7.18 アーカイブ圧縮版のインストールチュートリアル

この記事では、MySQL 5.7.18アーカイブ圧縮版をインストールする具体的な方法を参考までに紹介...

Centos7 に MySQL 8.0.23 をインストールする手順 (初心者レベル)

まず、MySQL とは何かを簡単に紹介します。簡単に言えば、データベースはデータを格納するための倉庫...