首页 > 编程笔记 > Java笔记 阅读:1

Docker是什么,Docker简介(新手必看)

在云计算领域,开发者需要具备哪些基本技能?Docker 必是其一,作为一个开源的应用容器引擎,Docker 能够让开发者打包它们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,方便快捷。

Docker 是一个开源项目,诞生于2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub上 进行维护。Docker 项目后来还加入了 Linux 基金会,并成功推动了开放容器联盟(Open Container Initiative,OCI)的成立。

Docker 自开源后受到广泛的关注和讨论,它是目前流行的 Linux 容器解决方案。以至于 dotCloud 公司后来都改名为 Docker Inc。

Docker 的目标是实现轻量级的操作系统虚拟化解决方案。Docker 的基础是 Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。有了 Docker,就不用担心环境问题了。

为什么要使用Docker

Docker 作为一种新兴的虚拟化技术,跟传统的虚拟机方式相比具有众多的优势。首先,Docker 的启动可以在秒级实现,这相比于传统的虚拟机方式要快得多。其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

Docker 除了运行其中的应用外基本不消耗额外的系统资源,这使得应用的性能很高,同时系统的开销很少。传统虚拟机方式是运行 10 个不同的应用就要启动 10 个虚拟机,而 Docker 只需要启动 10 个隔离的应用即可。

具体来说,Docker 主要有如下 6 大优势:
1) 更高效地利用系统资源,Docker 对系统资源的利用率更高,无论是应用执行速度、内存损耗或者文件存储速度,都比传统虚拟机方式更高效。因此,相比于传统虚拟机方式,相同配置的主机使用 Docker 可以运行更多数量的应用。

2) 更快速启动,传统的虚拟机方式启动应用服务往往需要数分钟,而 Docker 由于直接运行于宿主内核无需启动完整的操作系统,因此启动时间可以达到秒级甚至毫秒级,大大节约了开发、测试、部署的时间。

3) 一致的运行环境,Docker 的镜像提供了除内核外完整的运行时环境,确保环境一致性,避免出现“测试环境没问题,生成环境频繁报错”的问题。

4) 持续交付和部署,Docker 能够做到一次创建和部署后在任意平台运行。而且使用 Dockerfile 使镜像构建透明化,使得开发、运维能够理解应用运行环境,帮助更好地部署应用。

5) 更轻松的迁移,Docker 确保了执行环境的一致性,因此用户可以很轻易地将应用迁移到其他平台上,而不用担心运行环境的变化导致应用无法正常运行的问题。

6) 更轻松的维护和拓展,Docker 使用的分层存储以及镜像技术,使得应用复用更加容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得十分简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的官网镜像,既可以直接使用,又可以作为基础镜像进一步定制,大大地降低了应用服务的镜像制作成本。

总的来说,Docker 技术是一种更加精细、可控、基于微服务的技术,可以为企业提供更高的效率价值。

Docker的架构

Docker 是 C/S 架构,主要有 Docker 服务端(Docker Daemon)和 Docker 客户端(Docker Client),具体如下:
Docker 主要由镜像(Image)、容器(Container)、仓库(Registry)3 部分组成,如下图所示:


图 1 Docker的组成结构


总结起来,镜像就相当于打包好的程序,镜像启动之后运行在容器中,仓库就是保存存储镜像的服务地址。

相关文章