著者: 禅とコンピュータープログラミングの芸術
1 はじめに
Docker は、物理マシン、仮想マシン、クラウドなどのあらゆるインフラストラクチャ上でアプリケーションを簡単にパッケージ化、デプロイ、実行できるようにするオープンソースのアプリケーション コンテナ エンジンです。Docker はアプリケーションとその依存関係をポータブル イメージにパッケージ化し、このイメージはどこでも実行できます。これは、いわゆる「一度ビルドすればどこでも実行できる」という概念です。Docker のインストールと構成は比較的簡単で、数分で完了します。
Docker ベースのアプリケーション アーキテクチャ パターンには主に 3 つの役割が含まれます。
ユーザー: 開発者または運用保守担当者は、Dockerfile を作成してコンテナ化された環境でアプリケーション コンポーネントを定義し、それをリモート ウェアハウスに送信します。ユーザーはコマンド ラインまたはグラフィカル インターフェイスを介してイメージをプルし、アプリケーション開発用のコンテナを開始できます。そしてテスト作業を待っています。
ウェアハウス: リモート ウェアハウスは、Docker イメージを保存するファイル サーバーです。Docker Hub や Alibaba Cloud Warehouse などのサービス プロバイダーの助けを借りて、ユーザーは必要なイメージを迅速に入手できます。
エンジン: Docker エンジンは Docker 全体の中核部分であり、Docker コンテナの作成、実行、管理を担当します。
つまり、Docker に基づいて、さまざまなアプリケーションを効果的にパッケージ化、デプロイ、実行できるため、環境構築とアプリケーションの移行の困難さが効果的に軽減されます。
2. コンテナの基本概念と用語
2.1 コンテナとは何ですか?
コンテナは、アプリケーションとそのすべての依存関係をまとめてパッケージ化する標準化された方法です。マクロの観点から見ると、コンテナは軽量の仮想マシンのようなものです。コンテナは完全なハードウェアをシミュレートするのではなく、必要なリソース分離とセキュリティ メカニズムのみを提供するため、あらゆるプラットフォームに簡単にデプロイできます。微視的な観点から見ると、コンテナはイメージと実行中のファイルで構成されます。