Docker从入门到精通(一)——初识-LMLPHP

1、Docker 是什么?

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

2、Docker 为什么会出现?

①、一次构建,到处运行

一个项目,从开发-上线,开发人员需要在本机进行开发,运维人员将打包的服务部署上线,涉及到操作系统变更,应用配置变更,很常见的一种情况是:

进而衍生出:

Docker 便能干这个事,通过 Docker 打包镜像发布测试,提供了一个标准化的解决方案,再也不用担心因为环境不一致而导致的服务部署问题。

②、更高效的计算资源利用

我们部署项目,发展历程如下:

一、物理机时代

Docker从入门到精通(一)——初识-LMLPHP

部署一个服务,会粗略估计服务所需要的机器性能,然后去采购对应的真实物理机器,然后在该机器上安装服务需要的一些软件,比如服务器Tomcat,数据库MySQL等等。

物理机时代还是有很多缺点的:

二、虚拟机时代

Docker从入门到精通(一)——初识-LMLPHP

VMware 相信大家都玩过,通过VMware 我们能在自己电脑上创建很多虚拟机器,而物理机时代就是在一台真实物理机上,虚拟出多台机器,而且每台机器都可以看做是一台独立的电脑。

相对于物理机时代,虚拟机能够在一台机器上创建多台机器,能够充分利用资源,并且也做到了机器之间的隔离,机器性能不够用了,也可以通过 Hypervisor 随时进行扩展。

但是也有个缺点,我们每一台虚拟机都要独立安装操作系统,大家知道操作系统其实也是比较占用性能的,有多少台虚拟机,我们就得多安装多少个操作系统,这样就浪费了很多资源,那么怎么解决呢?

三、容器化时代

Docker从入门到精通(一)——初识-LMLPHP

容器类似于 VM,但是它们具有被放宽的隔离属性,可以在应用程序之间共享操作系统(OS)。 因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。可以把容器看做是不用安装操作系统的虚拟机,容器化技术比虚拟机更加灵活,更加小巧,更加极致的利用物理机资源。

3、Docker 的优点

①、部署快,开发测试更加敏捷

通过Docker 打包镜像发布测试,一键运行。

②、快速扩缩机器

由于Docker容器快速启动特性,可以很快速的启动几十个、上百个容器来提供更多并发和资源利用率,并且这么多容器也有比较成熟的解决方案来统一管理,比如K8S。

③、提高系统利用率,降低硬件成本

轻量级的虚拟机,更省资源。

④、跨环境可移植

⑤、更好的支持微服务

微服务是近几年来IT圈内谈论比较多的一个名词,意义也很简单:尽可能细粒度拆分业务程序架构,由多个独立服务组成业务系统。

而Docker的容器设计原则:一个容器一个服务,容器之间相互隔离,和微服务正好遥相呼应。

⑥、应用运维标准化,支持不同语言应用

⑦、避免云厂商锁定

4、Docker 学习网站

①、官网(永远的神)

https://www.docker.com/

②、官方文档

https://docs.docker.com/

③、仓库地址

https://hub.docker.com

12-10 17:51