Docker 的前世今生

发布于 2021-05-25 12:12:53 字数 1862 浏览 1466 评论 0

一、Docker 介绍

容器技术被认为是未来部署软件的主流趋势之一,高性能,轻量级及跨平台是容器技术的主要特征,传统的应用部署过程大概是:下载软件->编译安装->启动软件,比如现在要安装 LNMP 软件,就得先下载 Nginx+Mysql+PHP,然后一个个安装,这对于一两台服务器时还能接受,要是面对成千上万的服务器集群,还不得累死吗?有没有办法把这几个软件打包成一个软件一次性安装呢,容器的出现使得很好的解决了这类问题。

二、什么是容器

容器以一种特定的格式来打包软件,这种格式可以各自独立的运行在同一个操作系统之上,不像虚拟机,容器不会捆绑一个完整的操作系统,而仅仅打包软件运行所需要的依赖库和设置。这样可以实现一个高效、轻量级、自给自足的系统,并且可以保证软件总是以相同的方式运行,而不管它被部署在哪里。

从上可知,容器是一种打包应用的方式,可以帮你打包应用中的所有软件和软件所依赖的环境,并且可以实现跨平台部署。相比虚拟机,容器更高效和轻量化,一台服务器运行1000个虚拟机基本是难以想象的,但IBM的服务器据称已经在一台服务器上运行万级的容器。

三、Docker 是什么? docker 是容器领导者。

Docker 是世界领先的软件容器平台,在进行多人协作开发时,开发者可以使用 Docker 来消除所谓 我这里运行是好的(works on my machine)问题,运维人员使用 Docker 来并行的运行和管理应用来获得更优计算密度,基于各自独立的容器。企业使用 Docker 来建立敏捷的交付方式,实现更快的、更安全的和更自信的交付新功能而不管是Linux或Windos服务器。

四、主机虚拟化和容器的区别

五、早期的虚拟化隔离

通过比较复杂的代码开发过程,调用以下三项技术,实现容器的创建和销毁。

chroot

完整的根文件系统 FHS 标准

Namespace 命名空间

1、PID(Process ID):进程隔离
2、NET(Network):管理网络接口
3、IPC(InterProcess Communication):管理跨进程通信的访问
4、MNT(Mount):管理挂载点
5、UTS(Unix Timesharing System):隔离内核和版本标识(主机名域名)
6、User:用户空间隔离

Cgroups

  1. 资源限制管理
  2. 优先级设定
  3. 资源计量
  4. 资源控制
  • blkio:块设备 io
  • cpu:cpu
  • cpuacct:cpu 资源使用报告
  • cpuset:多处理器平台上的 cpu 集合
  • devices:设备访问
  • freezzer:挂起或恢复任务
  • memory:内存用量及报告
  • pref event:对 cgroup 中的任务进行同一性能测试
  • net cls:cgroup 中的任务创建的数据报文的类别标识符

六、LXC(LinuXContainer) & Docker

LXC

对于原有的常用功能进行了封装,方便我们做容器的生命周期

Docker

在 lxc 基础上做了革命性的改变-镜像

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

沧笙踏歌

文章 0 评论 0

山田美奈子

文章 0 评论 0

佚名

文章 0 评论 0

岁月无声

文章 0 评论 0

暗藏城府

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文