Docker サービスでさまざまなディレクトリを使用する方法に焦点を当てる
Docker は、アプリケーションを迅速かつ効率的に構築、デプロイ、実行できる非常に人気のあるコンテナ化テクノロジです。 Docker サービスは、Docker クラスター管理で最も一般的に使用されるメカニズムの 1 つです。 Docker サービスを使用すると、ユーザーは複数の Docker コンテナを 1 つのサービスに結合して、高可用性、負荷分散、その他の目的を実現できます。この記事では、Docker サービスでさまざまなディレクトリを使用する方法に焦点を当てます。
Docker サービスとは何ですか?
Docker Service は Docker クラスター管理のメカニズムの 1 つで、複数の Docker コンテナーを 1 つのサービスに結合できます。 Docker Service は、高可用性、負荷分散、自動拡張などの機能を実装しており、ユーザーがサービスやアプリケーションを最適化するのに役立ちます。
Docker サービスは、レプリカやグローバルなど、さまざまなデプロイメント戦略をサポートしています。レプリカ ポリシーを使用する場合、ユーザーは起動するコンテナーの数を定義でき、Docker エンジンはクラスター全体にコンテナー インスタンスを自動的にデプロイおよび管理します。グローバル戦略を使用する場合、Docker エンジンはコンテナーのコピーを起動し、クラスター内の各ノードにデプロイします。
Docker サービスを使用するメリット
Docker サービスを使用すると多くのメリットが得られます。主なメリットをいくつか紹介します。
- 高可用性: Docker サービスは簡単に実現できます。コンテナの高可用性により、ノードに障害が発生した場合でも、コンテナの自動バランシング機能により、新しいコンテナ インスタンスが他のノードで自動的に起動されます。
- 負荷分散: Docker サービスを使用すると負荷分散を簡単に実現できるため、ユーザーのアプリケーションは負荷分散の問題に注意を払うことなく常に最適な状態になります。
- 自動拡張: Docker サービスは自動拡張をサポートしており、ユーザーはコンテナーの数を調整するだけでアプリケーションを拡張できます。
Docker サービスはさまざまなディレクトリをどのように使用するのでしょうか?
Docker サービスは、デフォルトで、Dockerfile が配置されているディレクトリをコンテナー イメージのビルド コンテキストとして使用します。ただし、異なるディレクトリに異なるイメージをビルドする必要がある場合は、異なるビルド コンテキストを使用する必要があります。
以下では、さまざまなディレクトリを使用して Docker イメージを構築し、Docker サービスを使用してアプリケーションをデプロイする方法を紹介します。
- ディレクトリ構造の作成
まず、次のディレクトリ構造を作成します:
. ├── dockerfiles │ ├── web1 │ │ ├── Dockerfile │ │ └── index.html │ └── web2 │ ├── Dockerfile │ └── index.html ├── docker-compose.yml └── services.yml
dockerfiles ディレクトリに、それぞれ web1 と web2 を作成しました。内容の。各ディレクトリには、Dockerfile ファイルとindex.html ファイルが含まれています。このうち、Dockerfile ファイルは Docker イメージの構築に使用され、index.html ファイルはコンテナーが正常に実行されているかどうかのテストに使用されます。
services.yml ファイルでは、web という名前のサービスを定義します。これは、2 つのコンテナー web1 と web2 をデプロイするために使用されます。
- Dockerfile の作成
この例では、web1 と web2 にそれぞれ Dockerfile を作成しました。それらは次のとおりです:
web1 ディレクトリの Dockerfile ファイル:
FROM nginx COPY index.html /usr/share/nginx/html
web2 ディレクトリの Dockerfile ファイル:
FROM nginx WORKDIR /usr/share/nginx/html COPY index.html .
ここでは、異なる Dockerfile ファイルを使用し、別の Dockerfile ファイルを使用します。各ファイルにコンテキストを構築します。 web1 の Dockerfile は COPY ディレクティブを使用し、index.html ファイルを指定されたビルド コンテキストからコンテナーにコピーします。 web2 Dockerfile は、WORKDIR 命令と COPY 命令を使用します。これにより、作業ディレクトリが /usr/share/nginx/html に設定され、index.html ファイルがビルド コンテキストからコンテナにコピーされます。
- docker-compose.yml ファイルの作成
サービスを定義するために、引き続き docker-compose.yml ファイルを使用します。ファイルの内容は次のとおりです。
version: '3.7' services: web1: build: context: ./dockerfiles/web1 image: web1 deploy: replicas: 2 ports: - 8081:80 web2: build: context: ./dockerfiles/web2 image: web2 deploy: replicas: 3 ports: - 8082:80
docker-compose.yml ファイルでは、web1 と web2 という 2 つのサービスを定義し、それぞれ異なるビルド コンテキストを使用します。同時に、各サービスのレプリカとポートの属性も指定して、コンテナーの数とポート マッピングを制御します。
- サービスをデプロイする
最後に、Docker Stack コマンドを使用してサービスをデプロイします。
$ docker stack deploy -c services.yml myapp
コマンドの実行が完了したら、次のことができます。次のコマンドを使用してサービスのステータスを表示します:
$ docker stack ps myapp
- サービスのテスト
サービスの展開が完了したら、ブラウザを使用して次の URL にアクセスしてテストできます。 web1 サービスと web2 サービスが正常に実行されているかどうか:
web1 サービス:
http://localhost:8081
web2 サービス:
http://localhost:8082
すべてが正常であれば、index.html ファイルの内容が表示されます。各サービスごとに。
概要
この記事では、Docker サービスでコンテナーを構築するためにさまざまなディレクトリを使用する方法を紹介しました。異なる Dockerfile を使用して 2 つのサービスを作成し、docker-compose.yml ファイルでサービスのビルド コンテキストを定義しました。最後に、サービスをデプロイし、サービスが適切に実行されていることをテストしました。これにより、Docker サービスを使用するユーザーが別のディレクトリにコンテナー イメージを構築する便利な方法が提供されます。
以上がDocker サービスでさまざまなディレクトリを使用する方法に焦点を当てるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Dockerは、DevOpsエンジニアにとって必須のスキルです。 1.Dockerは、アプリケーションとその依存関係をコンテナにパッケージ化することにより、分離と移植性を実現するオープンソースのコンテナ化されたプラットフォームです。 2. Dockerは、名前空間、コントロールグループ、フェデレーションファイルシステムで動作します。 3。基本的な使用には、コンテナの作成、実行、管理が含まれます。 4.高度な使用法には、DockerComposeを使用してマルチコンテナーアプリケーションを管理することが含まれます。 5.一般的なエラーには、コンテナ障害、ポートマッピングの問題、データの持続性の問題が含まれます。デバッグスキルには、ログの表示、コンテナの入り、および詳細情報の表示が含まれます。 6.パフォーマンスの最適化とベストプラクティスには、画像の最適化、リソースの制約、ネットワーク最適化、DockerFileを使用するためのベストプラクティスが含まれます。

Dockervolumeは、コンテナを再起動、削除、または移行すると、データが安全であることが保証されます。 1。ボリュームの作成:Dockervolumecreatemydata。 2。コンテナとマウントボリュームを実行します:Dockerrun-It-Vmydata:/app/dataubuntubash。 3.高度な使用には、データ共有とバックアップが含まれます。

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop< container_id>);コンテナを起動します(docker start< container_id>);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerセキュリティの強化方法は次のとおりです。1。-cap-dropパラメーターを使用してLinux機能を制限します。2。読み取り専用コンテナを作成します。これらの戦略は、脆弱性の露出を減らし、攻撃者の機能を制限することにより、コンテナを保護します。
