侧边栏壁纸
博主头像
IT技术分享社区博主等级

一个有态度的互联网技术交流平台

  • 累计撰写 36 篇文章
  • 累计创建 13 个标签
  • 累计收到 15 条评论

目 录CONTENT

文章目录

Docker基础:Docker是什么,为什么这么火

IT技术分享社区
2022-07-30 / 0 评论 / 0 点赞 / 15 阅读 / 1,569 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-07-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

一、Docker是什么?

Docker是一个开源的应用容器引擎,它基于go语言开发,并遵从Apache2.0开源协议。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的 Linux 机器上运行。Docker 的核心思想打包装箱,每个箱子是互相隔离的,互补影响。

二、Docker 历史

2010 年,几个搞 IT 的年轻人,在美国旧金山成立了一家名叫 dotCloud 的公司。dotCloud 的平台即服务(Platform-as-a-Service, PaaS)提供商。dotCloud 平台底层利用了 Linux 的 LXC 容器技术。

什么是LXC?

LXC 是 Docker 的底层基石,但是在 Docker 0.9 版本的时候,Docker引入了基于 Go 语言构建的 Libcontainer 的 execution driver。有了 Libcontainer 这个项目,Docker 不再需要依赖于 Linux 部件(LXC,libvirt,systemd-nspawn…)就可以处理 namespaces、control groups、capabilities、apparmor profiles、network interfaces。LXC 逐渐沦为可选项。

后来为了方便创建和管理这些容器,dotCloud 基于 Google 公司推出的 Go 语言开发了一套内部工具,之后被命名为 Docker。Docker 就是这样诞生的。

Docker 1.8 版本 中 LXC 被 弃用,在Docker 1.10版本LXC 彻底退出Docker。Docker 官方推出的Libcontainer 集成了 Linux 内核中的很多特性,成为一个独立、稳定且不受制于 Linux 的 Library。

2013 年 3 月,dotCloud 公司的创始人之一28 岁的 Solomon Hykes 正式决定,将 Docker 项目开源。

开源当月发布了 Docker 0.1 版本。此后的每一个月, Docker 都会发布一个迭代版本。到 2014 年 6 月 9 日, Docker 1.0 版本正式发布了。

这个时候的 Docker已经成为行业里人气最火的开源技术、。 Google、微软、Amazon、 VMware 这样的互联网巨头们都对它青睐有加,表示将全力支持。Docker 火了之后, dotCloud 公司干脆把公司名字也改成了 Docker Inc. 。

三、为什么选择 Docker

3.1 更高效的利用系统资源

由于容器不需要进行硬件虚拟以及运行完整操作系统等额外的开销,Docker 对系统资源的利用率比虚拟机更高。无论是应用执行速度、内存损耗或者文件存储,都要比传统虚拟机技术更高效。

3.2 更快速的启动时间

传统的虚拟机技术启动应用服务往往需要好几分钟, Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,可以达到秒级、甚至毫秒级的启动时间。大大的节约了项目部署的时间。

3.3 保证一致的项目运行环境

开发过程中一个非常常见的问题是本地环境、测试环境、生产环境不一致。经常能碰到开发、测试环境运行正常而到了生产环境出现莫名其秒的问题。而 Docker 的镜像提供了除内核外完整的项目运行环境,确保了应用运行环境一致性,从而避免了因为开发环境不一致造成的部署问题。

3.4 持续交付和部署

对开发和运维(DevOps)人员来说,最理想的就是一次创建或配置,可以在任意服务器上正常运行。

使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 Dockerfile 来进行镜像构建,并结合持续集成(Continuous Integration)系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合持续部署(Continuous Delivery/Deployment)系统进行自动化部署。

而且使用 Dockerfile 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的在生产环境中部署该镜像。

3.5 更轻松的服务迁移

由于 Docker 确保了运行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。

3.6 更轻松的维护和扩展

Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的 官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。

四、容器与虚拟机的比较

Docker 和传统虚拟化方式的不同,容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

与传统的虚拟机相比,Docker 优势体现为启动速度快、占用体积小。

特性

Docker

虚拟机

启动

秒级

分钟级

硬盘使用

MB

GB

性能

接近原生

较差

系统支持量

单机支持上千个容器

一般几十个

0

评论区