Docker解决的问题
-
组织有序
没有Docker,一台机器的应用及其依赖间的关系非常凌乱
没有Docker,实例程序的依赖关系.png
![](https://img.haomeiwen.com/i7087049/c3e7a2f2100bcc89.png)
-
提高可移植性
Docker改善了每个程序的可移植性,无论它用什么语言编写,为什么操作系统而设计,或是在什么样的环境下运行。(注意:目前Docker只能运行Linux操作系统上的应用程序,无法运行OS X和Windows上的应用程序) -
保护你的机器
像物理的牢房,容器里的任何东西只能访问它内部的东西。在Docker中运行的程序若有病毒,则仅会威胁到特定应用程序本身
Docker限制了一个程序对其他程序带来的影响范围、可访问的数据和资源的影响范围.png
什么是Docker
- Docker不是虚拟化:过去隔离都是通过硬件虚拟化获得,即虚拟机,提供虚拟的硬件,运行整个操作系统副本,资源开销显著。而Docker不使用硬件虚拟化,Docker中的程序接口和主机Linux内核直接打交道,没有额外层。
- 容器可以隔离所有资源,在容器中运行的程序只能访问属于自己容器的内存空间和资源,有了Docker,用户以更低成本获得容器,Docker运行的软件其实是在一个容器内运行。Docker不提供容器技术,但它使得容器更易于使用
案例:"Hello World"
安装好Docker后,执行docker run dockerinaction/hello_world
(dockerinaction/hello_world是所谓的仓库、镜像名)
终端会返回一个字符串,唯一表示该容器。
![](https://img.haomeiwen.com/i7087049/7bcd39b74dfaac36.png)
容器的运行状态和容器内单词运行的程序状态关联。若程序在运行,则容器运行,反之亦然。
网友评论