コンテナとは何ですか?
文コンテナ:コンテナは、開発、配信および展開のための標準化されたユニットにソフトウェアをパッケージ化しています。
- コード、実行時環境、システムツール、システムライブラリと設定:ミラーリングコンテナは、あなたがソフトウェアを実行するために必要なすべてが含まれている軽量、スタンドアロンの実行可能パッケージです。
- LinuxとWindowsベースのアプリケーションのためのコンテナソフトウェアは、一貫して任意の環境で実行することができます。
- コンテナは、このように同じインフラストラクチャ上で異なるソフトウェアを実行しているチーム間の競合を減らすために貢献し、外部環境の違い(開発およびリハーサル環境では例えば、差異)の影響から、ソフトウェアの独立性を提供します。
コンテナより人気のある説明を見てください:
あなたは、単純な容器で記述する必要がある場合、私は文房具のすべての種類を保持することができ、袋のようなものを収納する容器は、ワードローブは、衣服のすべての種類を置くことができる場所、靴のラックは靴と同じのすべての種類を置くことができると思います。私たちは、このようなサイトを使用することを好む、とさえシステム環境をプログラムすることができる何か容器収納について話しています。
ドッカーとは何ですか
ドッキングウィンドウがオープンソースプロジェクトで、初期の2013年に誕生した、それは最初は素人プロジェクト内部dotCloudの会社でした。これは、囲碁の言語のGoogleの打ち上げに基づいています。Projectは後でLinux Foundationのは、Apache 2.0プロトコルへの準拠、GitHubの上で維持プロジェクトコードに参加しました。
何であるかについての真実と言うことドッカーの良いを伝えるために、ここで私は最後の4つのポイントドッカーによってあなたに説明するものです。
- ドッカーは、世界有数のソフトウェアプラットフォームのコンテナです。
- ドッカー使用Googleが仮想化オペレーティングシステムレベルに属する、などのLinuxカーネル、カプセル分離の過程としてのcgroup、名前空間、およびunionfsのAUFSのクラスの技術に基づいて、達成するためのGo言語の開発を開始しました。独立して、ホストと他の分離プロセスの分離プロセスので、したがって、容器とも称される。Docke最初の実装は、LXCに基づいています。
- ドッカーが設定などの反復作業を自動化し、彼らは本当に重要なことに集中できるように開発者を解放し、開発環境、設定することができます偉大なソフトウェアを構築します。
- ユーザーが簡単に容器の中に自分のアプリケーションを入れて、コンテナを作成して使用することができます。容器はまた、同じような一般的なコードを管理、バージョン管理、コピー、共有、修飾してもよいです。
なぜドッカー
仮想化への新しいアプローチとして、仮想化への従来のアプローチと比較しドッカーは、多くの利点を持っています。
ドッカーは、以下の点で大きな利点があります:
1.高速配信と展開
開発サイクル全体にドッキングウィンドウを使用して、完璧な高速配信を実現する支援することができます。ドッキングウィンドウは、開発者がローカルコンテナで開発されたアプリケーションやサービスを行うことができます。これは、直接、持続可能な開発プロセスに統合することができます。
例:開発者は、直接タグを展開するために、この容器を使用することができ、開発、運用・保守要員が完了した後、標準的な画像現像剤容器を構築するために使用できます。アプリケーションの作成と作業する方法を理解するために、チームの他のメンバーが容易になるようにドッキングウィンドウはすぐに、プロセス全体の容器、高速で反復的アプリケーション、および可視を作成することができます。ドッカーコンテナは非常にすぐに点灯します!開始時刻と、容器の第2レベル、開発、テスト、展開時間を短縮大量のです。
2.効率的な導入と展開
ドッカーコンテナはように物理マシン、仮想マシン、パブリッククラウド、プライベートクラウド、PC、サーバとを含む、ほぼすべてのプラットフォーム上で実行することができます。この互換性は、ユーザーが直接別のプラットフォームからアプリケーションを移行することができます。
互換性と軽量特性ドッカーは簡単に動的な負荷管理を実現することができます。あなたは、迅速かつ容易にこのレートをリアルタイムに近づいて、ダウンラインまたはアプリケーションとサービスの拡大することができます。
3.高いリソース使用率
ドッカーシステムリソースの使用率が高いが、同時に、ホストコンピュータ上のドッキングウィンドウコンテナの何千もを実行することができます。できるだけ小さいシステムのオーバーヘッドが、実質的に追加のシステムリソースを消費しないアプリケーションコンテナ、このような高性能アプリケーションを実行することに加えて。従来の仮想マシンは、ドッカーだけ孤立し10にアプリケーションを起動する必要がありながら、10種類のアプリケーションは、10台の仮想マシンを再生します実行します。
4.シンプル管理
ドッカー、わずかな変更を使用して、あなたは、従来の更新の多くを置き換えることができます。すべての修正は、分散および自動化と効率的な管理を可能にする、増分更新されます。
仮想マシン間のドッカー差
上記の二つの絵を比較し、我々は仮想マシンは、ポータブルオペレーティングシステムであることが判明し、アプリケーション自体は小さいですが、理由は、オペレーティング・システムを運ぶ非常に大きく、非常に重くなってしまいます。
ドッカーは、オペレーティングシステムを運んでいないので、ドッカーのアプリケーションは、非常に軽量です。
另外在调用宿主机的CPU、磁盘等等这些资源的时候,拿内存举例,虚拟机是利用Hypervisor去虚拟化内存,整个调用过程是虚拟内存->虚拟物理内存->真正物理内存,但是Docker是利用Docker Engine去调用宿主的的资源,这时候过程是虚拟内存->真正物理内存。
Docker 基本架构
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 主要有以下几部分组成:
- Docker Client 客户端
- Docker daemon 守护进程
- Docker Image 镜像
- Docker Container 容器
- Docker Registry 仓库
客户端和守护进程:
- Docker是C/S(客户端client-服务器server)架构模式。
- docker通过客户端连接守护进程,通过命令向守护进程发出请求,守护进程通过一系列的操作返回结果。
- docker客户端可以连接本地或者远程的守护进程。
- docker客户端和服务器通过socket或RESTful API进行通信。
Docker 容器通过 Docker 镜像来创建,容器与镜像的关系类似于面向对象编程中的对象与类。
如图所示基本架构:
1.Docker 镜像(Images)
Docker 镜像是用于创建 Docker 容器的模板。
2.Docker 容器(Container)
容器是独立运行的一个或一组应用。
3.Docker 客户端(Client)
Docker 客户端通过命令行或者其他工具使用 Docker API
4.Docker 主机(Host)
一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
5.Docker 仓库(Registry)
Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
6.Docker Hub
提供了庞大的镜像集合供使用。
7.Docker Machine
ドッカーマシンはドッキングウィンドウは、VirtualBoxの、デジタルオーシャン、マイクロソフトのAzureなどの適切なプラットフォーム上でドッカーをインストールするには、単純なコマンドラインを使用してインストール単純化されたコマンドラインツールです。
要するに、ドッカーは、同様の仮想マシンの隔離を提供するために、軽量コンテナの仮想化技術であり、画像管理組み合わせた階層型ファイルシステム技術を使用して、運用および保守環境が大幅に最後の対応を見てみましょう、プロセスを簡素化することができますアプリケーション・シナリオ。
ドッカーアプリケーションシナリオ
クラウドホストとして1.
仮想マシンと比較すると、その立ち上げを作り、非常に軽量な仮想化技術のシリーズを使用した容器は、展開、迅速な柔軟性と、それは仮想マシンのような感じでは違いはありませんのような管理プロセスをアップグレードするので、何人かの人々軽量仮想マシンが使用するようなミラーとしてのUbuntuのドッカー直接使用するには、コンテナを作成します。
サービスとして2.
あなたは軽量の仮想マシンは固定としてだけドッカーコンテナを置き、それが実際には唯一の代替用法と見なされる場合は、最も重要な値ドッカーコンテナは限り、サービス展開、アップグレード、メンテナンスを簡素化するために、プラットフォームに依存しない技術の標準セットを提供するために標準コンテナにパッケージ化操作および保守サービスの必要性、あなたがドッカーを実行するために、どのような環境で、最大実行することができ、箱から出し効果に、この機能はドッカーコンテナは、世界の根本的な原因を総なめにしています。
- Webアプリケーションサービス
- 継続的インテグレーションと連続展開
マイクロサービスのアーキテクチャ3.使用
上記の2つのシナリオは、従来のPaaSプラットフォーム、この複雑かつ柔軟な利用シナリオのマイクロサービスアーキテクチャのため、その後絶対に革命的なシームレスなサポートと比べて大きな利点を反映するために十分ではない場合。
マイクロ分散型サービスアーキテクチャサービスが切り離さ従来、独立した展開が小さいアップグレードサービスモジュール、サービスモジュール、及びこれらの容器の軽量性、および効率的な展開が一致の一部との間に形成される分割し続けます。