コンテナの概念:
文コンテナ:コンテナは、開発、配信および展開のための標準化されたユニットにソフトウェアをパッケージ化しています。
- コード、実行時環境、システムツール、システムライブラリと設定:ミラーリングコンテナは、あなたがソフトウェアを実行するために必要なすべてが含まれている軽量、スタンドアロンの実行可能パッケージです。
- LinuxとWindowsベースのアプリケーションのためのコンテナソフトウェアは、一貫して任意の環境で実行することができます。
- コンテナは、このように同じインフラストラクチャ上で異なるソフトウェアを実行しているチーム間の競合を減らすために貢献し、外部環境の違い(開発およびリハーサル環境では例えば、差異)の影響から、ソフトウェアの独立性を提供します。
コンテナと仮想化の違い:
もっと単純に、容器はプロセスであり、それは直接だけでなく、自己のOS同様の環境の束と、ハードウェアリソースを使用することはできません。ある意味では、我々はそれが(もちろん、それとの最大の違いは、ハードウェアリソースの仮想化を直接使用することができないということです)軽量仮想化であると言うことができます。
演奏以下の表は、仮想化とコンテナを比較します。
- オペレーティングシステムは、物理的なハードウェアの抽象化です。それは上の仮想プラットフォーム管理ハードウェアを設定し、仮想マシンのディストリビューションをインストールしてください。各VMは、別のマシンであるので、彼らはそうでカーネル、バイナリ、設定ファイルなどが含まれています。それは非常に肥大化に見えました。良い管理しながら、しかし、アプリケーションレベルで、カップリングは、百の崩壊の崩壊が高すぎます。
- コンテナは、アプリケーション抽象化層です。これは、ドッキングウィンドウのサービスを実行して、このデーモンによってミラードッキングウィンドウを確立するために、オペレーティングシステムのデーモンプロセス(ドッカデーモン)上で実行されます。低い結合の状態を維持するように、同じマシンは、プロセス上のロットドッカーを実行することができ、それらはお互いを乱すことなく行うことができます。しかし、問題は、コンフィギュレーションは多くの問題である、です。
ドッキングウィンドウのライフサイクル
ドッキングウィンドウは、3つの基本的な概念が含まれています。
- (画像)
- コンテナ(コンテナ)
- 倉庫(リポジトリ)
次のようにそれらの間の関係は次のとおりです。
私たちは一つ一つを説明下:
ドッキングウィンドウの画像(特殊なファイルシステム):
まず、ドッキングウィンドウの画像は「組合FS」技術と呼ばれる1に基づいており、それが階層型ストレージを行うことができます。言い換えれば、ドッキングウィンドウの画像は、いくつかの環境設定が含まれているものの、それだけでこの層の構成に焦点を当て、ない全体的に、すべてのファイル(私は内部に、nginxのミラーを引っ張られ、何のvimのを発見していない例えば、後)。これは、より良い成層、高可用性と低動作カップリングです。
docker container(镜像运行后的实体):
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。
容器的本质就是一个进程。在它run起来后,会占用一部分系统资源,但是并不多。它与系统运行的进程不同的一点是,它有自己独立的namespace。也就是container id,而不是pid。我们可以通过docker命令来管理这些容器,比如,运行/删除/修改/查看等。
容器的存储层与容器的生命周期一样。这点应该注意,我们要切记,尽量不要在容器层跑存储。如果容器挂了,那么数据也就没了。如果一定要这样子,也应使用数据卷、绑定宿主目录等方式,跳过容器层存储,避免隐藏的麻烦。
docker repository(docker镜像仓库):
镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry就是这样的服务。
一个Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。所以说:镜像仓库是Docker用来集中存放镜像文件的地方类似于我们之前常用的代码仓库。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本 。我们可以通过 <仓库名> : <标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以latest作为默认标签。
这边我还没研究到建立自己的镜像仓库,这有点太专业了。。。。。。搞不掂啊!!!
docker build/run/ship
docker build: 生成镜像的方法,通常由编写dockerfile来进行指引。
docker run:镜像->容器,造出实例来,让它运行,提供服务。
docker ship: 主机和仓库间运输,这里的仓库就像是超级码头一样。
Docker运行过程也就是去仓库把镜像拉到本地,然后用一条命令把镜像运行起来变成容器。所以,我们也常常将Docker称为码头工人或码头装卸工,这和Docker的中文翻译搬运工人如出一辙。
PS: 我在写这篇文章的时候,由于表格处理不够美观,所以就直接截图了。如果各位dalao走过路过,能教教我怎么把表格弄得好看一点的话,麻烦给我留个言,小生先提前谢谢您的帮助啦!