パート01 Dockerの概要Dockerは、Goプログラミング言語をベースとしたオープンソースのアプリケーションコンテナエンジンで、Apache 2.0ライセンスの下でリリースされています。Dockerを使用すると、開発者はアプリケーションと依存関係を軽量で移植性の高いコンテナにパッケージ化できます。このコンテナは、一般的なLinuxマシンにデプロイできるため、効果的な仮想化を実現します。コンテナは完全にサンドボックス化されており、コンテナ間にインターフェースは存在せず、さらに重要なのは、パフォーマンスのオーバーヘッドが極めて低いことです。 Docker のアーキテクチャは次のとおりです。 パート02 特徴➤ ファイルシステムの分離 各プロセス コンテナーは完全に独立したルート ファイル システムで実行されます。 ➤ リソースの分離 CPU やメモリなどのシステム リソースは、cgroup を使用して異なるコンテナに割り当てることができます。 ➤ ネットワーク分離 各プロセス コンテナーは、独自のネットワーク スペース、仮想インターフェイス、および IP アドレスで実行されます。 ➤ ログ記録 Docker は、リアルタイムまたはバッチ取得のために各プロセス コンテナの標準ストリームを収集してログに記録します。 ➤ 変更管理 コンテナファイルシステムへの変更は新しいイメージにコミットされ、再利用して新たなコンテナを作成できます。テンプレートや手動設定は必要ありません。 ➤ インタラクティブシェル Docker は仮想端末を割り当て、それを任意のコンテナの標準出力に関連付けて、たとえば 1 回限りの対話型シェルを実行できます。 パート03 Dockerと仮想マシンの違いDockerを使用すると、アプリケーションをあらゆるオペレーティングシステム上で簡単に実行できます。また、前述の仮想マシンでは、単一のオペレーティングシステム内で別のオペレーティングシステムを実行することができ、そのシステム内のあらゆるアプリケーションを保護することができます。 これら2つの違いは何でしょうか? 仮想マシンとは、オペレーティングシステム内でハードウェアをシミュレートし、別のオペレーティングシステムを実行できるようにするデバイスです。例えば、Windowsシステム内でUbuntuを実行すると、あらゆるUbuntuアプリケーションを実行できます。 Docker は単に関数ライブラリをラップするだけであり、図に示すように完全なオペレーティング システムをシミュレートするわけではありません。 比較すると: 写真 パート04 Dockerを使用したJava Webアプリケーションのデプロイ4.1 システムイメージをダウンロードする(CentOSを例に) ダウンロードのステータスを確認するには、コマンド `docker images` を使用します。 4.2 このイメージからコンテナを作成する 実行中のコンテナのリストを表示するコマンド: docker ps すべてのコンテナを表示し、コンテナ起動コマンドを使用して、作成した CentOS コンテナを実行します: `docker start stupefied_perlman` 4.3 コンテナに対応する依存関係を追加する コンテナを作成したら、コンテナに入り、必要な依存関係を追加する必要があります。コンテナに入るコマンドは以下のとおりです。 4.4 環境依存関係とともにすでにデプロイされているコンテナを新しいイメージとして送信します。 4.5 新しいイメージに基づくJava Webコンテナの実行 |