【Docker基础】:Docker是什么?容器是什么?
Docker是什么?容器是什么?1.什么是容器?2.为什么需要它?3.举例说明4、容器是如何解决这个问题的呢?5、虚拟机和容器有些类似,那么二者之间有什么区别呢?6、容器有哪些优点呢?1.什么是容器?容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。2.为什么需要它?容器是针对以下问题的解决方案:在切换运行环境后,如何保证软件...
1.什么是容器?
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
2.为什么需要它?
容器是针对以下问题的解决方案:
在切换运行环境后,如何保证软件能够可靠地运行?这种切换可能是从程序员的笔记本电脑到测试环境、从某个测试阶段部署到线上,也可能是从数据中心的某台物理机到私有云或者公有云上的某台虚拟机。
3.举例说明
(1)当支持软件运行的环境不一致时,就会出现一些问题。
当支持软件运行的环境不一致时,问题就出现了。你在Python2.7下测试,线上却运行着Python3;或者你依赖具体某个SSL版本的功能,但服务器上却安装着另外版本的SSL;你在Debian系统上进行了测试,生产环境却是Red Hat,那各种各样的奇怪的事情就会发生。”
(2)网络的拓扑结构也可能不一样,安全策略、存储服务也有可能不一样。但是你的软件还是必须运行在这些环境中。
4、容器是如何解决这个问题的呢?
一个容器包含了完整的运行时环境:一个应用、这个应用所需的全部依赖、类库、其他二进制文件、配置文件,它们统一被打入了一个包中。通过将应用平台和其依赖容器化,操作系统发行版本和其他基础环境造成的差异,都被抽象掉了。
5、虚拟机和容器有些类似,那么二者之间有什么区别呢?
使用虚拟化技术时,可以被分发的文件包是一台虚拟机,它包含了整个操作系统和应用。一台运行着三个虚拟机的物理服务器,需要有一个管理虚拟机软件的中间层,以及运行在这个中间层之上的三个独立操作系统。
相较之下,一台运行着三个容器应用的服务器,只需要一个操作系统,而每个容器都可以和别的容器共享同一个操作系统内核。操作系统中被容器共享的部分是只读的,如果需要写入,每个容器都可以挂载独立的服务。这也就是说,容器比虚拟机要轻量级很多,它消耗的资源相较于虚拟机也少得多。
6、容器有哪些优点呢?
(1)轻量。
一个容器的文件大小可能只有几十M,但是一个拥有完整操作系统的虚拟机却可能是几个G。正因为这一点,对于一个独立服务器来说,它能承载的容器的数量比虚拟机的数量多得多。
(2)启动速度快。
虚拟机可能要耗费好几分钟的时间,才能启动操作系统、开始运行应用;然而容器中应用的启动几乎可以瞬间完成。如果需要部署更多的容器,它们的实例化可以很快完成;如果不需要这些容器了,也可以很快将它们从宿主服务器上释放掉。
(3)模块化
一个复杂的应用可以被细分成小的模块(比如数据库、应用前端等等),而不是将它运行在某一个容器中。这种方式通常被称为“微服务”。
使用这种方法构建的应用更容易被管理,因为每个模块都相对简单,而且需要更新某些模块时,不需要重新构建整个应用。因为容器非常轻量级,单独模块(或微服务)只有在它们被需要时才会被实例化,然后几乎瞬间就变得可用了。
(4)易于移植:一次构建,随处部署;
(5)秒级部署:根据镜像的不同,容器的部署大概在毫秒与秒之间(比虚拟机强很多);
更多推荐
所有评论(0)