1. Dockerとは何ですか?
Dockerは、Go言語に基づくオープンソースのアプリケーションコンテナーエンジンです。開発者は、アプリケーションと関連する依存関係をポータブルイメージファイルにパッケージ化し、それをサーバーに公開できます。
2. Dockerはどのような問題を解決しましたか?
2.1一貫性のない動作環境
Dockerテクノロジーは、一貫性のない開発環境が原因で一連のプログラムが正常に実行できないという問題を主に解決します。たとえば、開発者は独自の環境でテストおよびパッケージ化して展開しましたが、配信とメンテナンスの開始時に一連の問題が発生しました。開発者はここですべてが正常であると述べ、運用と保守のスタッフは開発者コードに問題があると述べました。
Dockerを使用すると、開発者のアプリケーションコードと開発環境の構成をコンテナーにパッケージ化し、Linuxシステムに移植して、「マシンで実行」の問題を解決できます。
2.2パブリックサーバー
Docker内のユーザー間の相互影響は孤立していますパブリックLinuxシステムでは、特定のプログラムがシステムリソースを大量に消費すると、このプログラムは他のプログラムの通常の動作に簡単に影響を及ぼします。その後、仮想マシンテクノロジが登場し、各仮想マシンは互いに分離され、異なるユーザーが互いに対話することはありませんでした。しかし、虚拟机
このヘビーウェイト仮想化ソリューションと比較すると、Dockerには軽量仮想化と低パフォーマンス消費という利点があります。
2.3サーバーでの繰り返しインストール環境
多くのJavaアプリケーションで分散クラスターデプロイメントが使用されています。クラスタリングとは複数のサーバーを意味します。アプリケーションの通常の動作では、各サーバーで同じ動作環境が必要になる場合があります。サーバーの動作環境を1度インストールする必要がありますが、マシンが少ない場合は、マシンが数十台あればどうなるでしょうか。
Dockerは、このような繰り返し発生する問題を簡単に解決でき、ソフトウェアは環境とともにインストールされるため、時間と労力を節約できます。
3. Dockerの哲学
Build,Ship and Run Any App,Anywhere
それはDockerの目標哲学、つまりです随时随地构建、安装、运行在任何地点
。
4. Dockerの3つの主要要素?
Dockerの3つの要素:
要素 | 説明文 |
---|---|
鏡 | Dockerイメージ(イメージ)は読み取り専用のテンプレートです。イメージを使用してDockerコンテナを作成でき、1つのイメージで多数のコンテナを作成できます。 |
容器 | コンテナーは、Linux環境の単純なバージョン(ルートユーザーのアクセス許可、プロセススペース、ユーザースペース、ネットワークスペースなどを含む)およびその中で実行されているアプリケーションと考えることができます。1つのコンテナーが1つのサービスを実行します。 |
倉庫 | Docker HubはGitHubに似ています。DockerHubはイメージファイルの中央リポジトリです。開発者はローカルの動作環境をイメージファイルとしてパッケージ化し、Docker Hubにアップロードします。O&Mはここからイメージファイルをダウンロードしてシームレスに実行します。 |
たとえば、Linuxシステムでは1台のマシンにインストールしましたがRedis、Mysql
、プロジェクトがクラスターデプロイメントの場合は、別のマシンにソフトウェアをインストールする必要があります。従来のインストール方法の場合は、面倒であり、一部の構成ファイルを変更する必要があります。Dockerテクノロジーを使用した後Redis
、実行環境をイメージファイルとしてパッケージ化し、別のマシンでイメージファイルを実行した後、まったく同じRedis
実行環境をインストールできます。一次封装,到处运行
効果を達成するように。
5.仮想マシンとコンテナー
仮想マシン(仮想マシン)は、環境をインストールするソリューションです。1つのオペレーティングシステムで別のオペレーティングシステムを実行できます。たとえば、WindowsシステムでLinuxシステムを実行できます。アプリケーションプログラムはこれを認識していません。Windowsシステムの場合、Linuxシステムは彼のソフトウェアの1つです。不要な場合は削除してください。影響はありません。仮想マシンは、完全なシステムの別のセットを完全にシミュレートします:メモリ、ハードディスク、サウンドカードなど、多くのリソースを消費し、起動が非常に遅くなります~~
仮想マシンテクノロジーの欠点を考慮して、Linuxは別のテクノロジー:Linuxコンテナー(Linuxコンテナー、略してLXC)。
Linuxコンテナーはオペレーティングシステムを仮想化します。これは、完全なコンピューターを仮想化するVMとは異なります。コンテナを使用すると、ソフトウェアが必要とするすべてのリソースを隔離されたコンテナにパッケージ化できます。コンテナーには、ソフトウェアが機能するために必要なライブラリリソースと構成のみが必要です。ソフトアーマーに適していないプリンターとサウンドカードはどれですか。したがって、システムは仮想マシンよりも軽量であり、あらゆる環境での展開が保証されます。途中で走行できます。
Docker容器 | 仮想マシン | |
---|---|---|
オペレーティングシステム | ホストとOSを共有する | ホストOSで仮想マシンOSを実行する |
収納サイズ | 保管と転送が簡単な小さな鏡像 | 巨大な画像(vmdk、vidなど) |
ランニングパフォーマンス | 追加のパフォーマンス低下はほとんどありません | オペレーティングシステムの追加CPU、メモリ消費 |
携帯性 | 軽量で柔軟性があり、Linuxに適応可能 | 煩雑で仮想テクノロジーと高度に結合 |
ハードウェアアフィニティ | ソフトウェア開発者向け | ハードウェア保守担当者向け |
展開速度 | 高速、秒 | 遅い、10秒以上 |
6.コンテナ技術の利点は?
コンテナーを使用してアプリケーションをデプロイすることはコンテナー化と呼ばれ、コンテナーは以下の特性のために開発コミュニティーから広く賞賛されています。
特徴 | 説明文 |
---|---|
柔軟 | 最も複雑なアプリケーションでもコンテナ化できます |
携帯性 | 開発者はローカルでビルドしてからクラウドサービスにデプロイして実行できます |
軽量 | コンテナーはホストコアを利用および共有します。これは、システムリソースの点で仮想マシンよりも効率的です。 |
疎結合 | コンテナは非常に自給自足型で、他のコンテナに損傷を与えることなく交換またはアップグレードできます |
スケーラブル | データセンターにコンテナのコピーを追加して自動的に配布できます |
安全な | コンテナーは、ユーザーからの構成なしでアクティブな制約と分離をプロセスに適用します |