私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Compose は Docker 社が発表したツール ソフトウェアで、複数の Docker コンテナを管理してアプリケーションを構成できます。 YAML 形式で構成ファイル docker-compose.yml を定義し、複数のコンテナ間の呼び出し関係を記述する必要があります。その後、コマンド 1 つでこれらのコンテナを同時に起動/停止できます。
Docker では、各コンテナーで 1 つのサービスのみを実行することを推奨しています。Docker コンテナー自体が使用するリソースはほとんどないため、各サービスを個別に分離することが最善です。しかし、その場合、別の問題が発生します。
複数のサービスを同時にデプロイする必要がある場合、サービスごとに個別の Dockerfile を作成してからイメージとコンテナーを構築する必要がありますか? これは面倒なので、docker は docker-compose マルチサービス デプロイメント ツールを公式に提供しています。 。
たとえば、Web マイクロサービス プロジェクトを実装するには、Web サービス コンテナ自体に加えて、多くの場合、バックエンド データベース mysql サービス コンテナ、redis サーバー、登録センター eureka、さらには負荷分散コンテナなどを追加する必要があります。 。 。 。 。 。
Compose を使用すると、ユーザーは別の docker-compose.yml テンプレート ファイル (YAML 形式) を通じて、関連するアプリケーション コンテナーのセットをプロジェクトとして定義できます。
構成ファイルを使用してマルチコンテナー アプリケーションを簡単に定義し、単一のコマンドを使用してアプリケーションのすべての依存関係をインストールし、ビルドを完了することができます。 Docker-Compose は、コンテナーを管理および調整する方法の問題を解決します。
高速ダウンロード アドレス
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
実行可能権限を追加する
chmod +x /usr/local/bin/docker-compose
インストールが成功したかどうかを確認する
docker-compose --version
アンインストール
sudo rm / usr/ local/ bin/docker-compose
Compose を使用するための 3 つのステップ
各マイクロサービス アプリケーションを定義し、対応するイメージ ファイルを構築するための Dockerfile を作成します。
docker-compose.yml を使用して完全なビジネス ユニットを定義し、アプリケーション全体でさまざまなコンテナ サービスを配置します。
最後に、 docker-compose up コマンドを実行してアプリケーション全体を起動および実行し、ワンクリックでデプロイを完了してオンラインにします。
共通コマンドを作成する
docker-compose -h # ヘルプを表示
docker-compose up # すべての docker-compose サービスを開始します
docker-compose up -d # すべての docker-compose サービスを開始し、バックグラウンドで実行します
docker-compose down # コンテナ、ネットワーク、ボリューム、イメージを停止して削除します。
docker-compose exec yml のサービス ID # コンテナ インスタンス内に入力します
docker-compose exec docker-compose.yml ファイルに書き込まれたサービス ID /bin/bash
docker-compose ps # docker-compose によって現在調整されている実行中のコンテナをすべて表示します
docker-compose top # docker-compose によって調整された現在のコンテナ プロセスを表示します
docker-compose ログのサービス ID yml # コンテナ出力ログの表示
docker-compose config # 構成を確認する
docker-compose config -q # 構成を確認し、問題がある場合にのみ出力します
docker-compose restart # サービスを再起動します
docker-compose start # サービスを開始します
docker-compose stop # サービスを停止します
docker-machine コマンドのインストール
base=https://get.daocloud.io/docker/machine/releases/download/v0.14.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
sudo install /tmp/docker-machine /usr/local/bin/docker-machine
1) Linux 仮想マシンで、IP アドレスを 192.168.90.215 (x は学生 ID の下 3 桁、y は自分で指定します) に構成すると、仮想マシンはインターネットに正常にアクセスできます。
2) DNS サーバーを構成します。ドメインは cr.com (abc は名前のイニシャルです) です。構成が完了したら、nslookup を使用して順方向および逆方向の解決を確認します。
3) LEMP (つまり、Nginx + MySQL (MariaDB) + PHP) を構成し、実際のホストを通じて www.cr.com (abc はイニシャル) にアクセスして、構築された LEMP にアクセスします。 (ローカル解決のためにホスト ファイルを変更することはできませんが、独自に構成された DNS を使用する必要があります)
まず、Linux の静的 IP を設定します http://alleniverrui.top/archives/linux-pei-zhi-jing-tai-ip (開けない場合は、以下のアドレスを変更してください)
//やること
/etc/named.conf ファイルを編集する
vim /etc/named.conf
リッスンオンとクエリの値を任意に変更します
cr.com を 192.168.90.215 に解決するように DNS を構成する
vim /etc/named.rfc1912.zones
ファイルの最後に追加
zone "cr.com" IN {
type master;
file "cr.com.zone";
allow-update { none; };
};
zone "215.90.168.192.in-addr.arpa" IN {
type master;
file "com.cr.loop";
allow-update { none; };
};
:wq 保存する
対応する構成ファイル vim /var/named/com.cr.loop を編集します。
以下を追加します
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR cr.com.
NS ns.cr.com.
ns A 192.168.90.215
201 PTR www.cr.com.
201 PTR email.cr.com.
vim /var/named/cr.com.zone を編集します
以下を追加します
$TTL 1D
@ IN SOA cr.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.90.215
AAAA ::1
NS ns.server.com.
ns IN A 192.168.90.215
www IN A 192.168.90.215
email IN A 192.168.90.215
DNSを再起動します
systemctl restart named
DNSステータスの表示
systemctl status named
正常に開始されました
nslookup cr.com の順方向解析
nslookup 192.168.90.215 の逆解析
docker-compose.yml ファイルを /mydocker/lemp に書き込みます
vim /mydocker/lemp/docker-compose.yml 次の内容を入力します
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build: ./php/
expose:
- 9000
links:
- mysql
volumes_from:
- app
app:
image: php:7.0-fpm
volumes:
- .:/var/www/html
command: "true"
mysql:
image: mysql:latest
volumes_from:
- data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: bookmarks
MYSQL_USER: cr
MYSQL_PASSWORD: cr123
data:
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
links:
- mysql
environment:
PMA_HOST: mysql
/mydocker/lemp/ に nginx/Dockerfile を作成します
埋める
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf
default.confを作成する
以下の内容を入力してください
server {
listen 80 default_server;
root /var/www/html;
index index.html index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/error.log error;
sendfile off;
client_max_body_size 100m;
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /.ht {
deny all;
}
}
/mydocker/lemp/ に php/Dockerfile を作成します。
埋める
FROM php:7.0-fpm
RUN docker-php-ext-install mysqli
Dockerコンテナをオーケストレーションする
docker-compose up -d
コンテナーの実行ステータスを表示する Docker ps
正常に開始されました
このマシンはIP経由でphp環境とnginx環境にアクセスします。
アクセス成功
ローカル DNS サーバーを仮想マシン (192.168.90.215) として構成します。
cmd ウィンドウを開き、cr.com で ping テストを実行します。
ping に成功しました
ドメイン名を介して構築されたphp環境にアクセスします
nginx設定ファイルを変更する
最終的なドメイン名は Web サイトに直接アクセスします