赞
踩
云计算三层架构
而Docker就是 PAAS 中的技术。
Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。
Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。
因此,Docker 必须部署在 Linux 内核的系统上。
如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。
除了 Docker 以外,还有 Rocket 、Containerd 等常用容器。
Docker 的设计宗旨:Build、Ship and Run Any App、Anywhere。
即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的 "一次封装,到处运行 "的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。
容器化越来越受欢迎,因为容器是:
容器是在 linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。
虚拟机运行的是一个完成的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。
特性 | Docker容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级(相当于在宿主机启动一个进程) | 分钟级 |
计算能力损耗 | 几乎无 | 损耗50%左右(隔了一层操作系统,再模拟内核,损耗性能) |
性能 | 接近原生 | 弱于 |
系统支持量(单机) | 单机支持上千个容器 | 几十个 |
隔离性 | 资源隔离/限制 | 完全隔离 |
相同点:都是运行在宿主机上面的,
容器在内核中支持2种重要技术:
Docker是容器管理工具,容器由镜像创建而来,镜像从仓库中获取而来,
openstack 是 通过KVM创建的虚拟机
docker 通过 cgroup 实现资源限制,k8s 通过systemd 实现资源限制
容器共有两种状态:running 和 exited.
用户也可以用 docker commit 命令将一个容器压制为image,供后续使用。
容器的特点:
●灵活:即使是最复杂的应用也可以集装箱化。
●轻量级:容器利用并共享主机内核。
●可互换:可以即时部署更新和升级。
●便携式:可以在本地构建,部署到云,并在任何地方运行。
●可扩展:可以增加并自动分发容器副本。
●可堆叠:可以垂直和即时堆叠服务。
Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker
目录下
Linux文件系统 和 Docker文件系统:
Linux文件系统
Docker文件系统:
传统的 Linux 加载 bootfs 时会先将 rootfs 设为 read-only,
然后在系统自检之后将 rootfs 从 read-only 改为 read-write,
然后我们就可以在 rootfs 上进行写和读的操作了。
同一个内核版本的所有Linux发行版本系统的bootfs是相同的,而rootfs则是不同的。
在Docker中,基础镜像中的roofs会一直保持只读模式,Docker 会利用 AUFS 来在这个rootfs上增加更多的只读文件系统,
最后它们看起来就像一个文件系统即容器的rootfs。
在Docker的体系里把这些read-only的rootfs叫做Docker的镜像。
由此可见在一个Linux系统之中:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。