[Docker][Docker简介]详细介绍
[Docker][Docker简介]详细介绍
·
1.Docker与虚拟机
-
虚拟机:
- 虚拟机是通过Hypervisor(虚拟机管理系统,常见的有VMWare WorkStation、VirtualBox),虚拟出网卡、CPU、内存等虚拟硬件,再在其上建立虚拟机
- 每个虚拟机是个独立的操作系统,拥有自己的系统内核(GuestOS)
-
容器:
- 利用
namespace
将文件系统、进程、网络、设备等资源进行隔离 - 利用
cgroup
对权限、CPU资源进行限制 - 最终让容器之间互不影响,容器无法影响宿主机
- 利用
-
Docker和虚拟机区别
传统虚拟机 Docker容器 磁盘占用 GB量级 MB量级 CPU内存占用 需要通过虚拟层调用占用率高 占用资源极低,直接作用于硬件资源占用少 隔离性 系统级别 进程级别 封装成都 打包整个OS 打包项目代码和依赖信息 -
Docker优势
- 运行在容器上的docker程序,直接使用的都是宿主机的硬件资源
- 因此在CPU、内存、利用率上,Docker将会在效率上具有更大的优势(效率高)
- Docker直接利用宿主机的系统内核,而不需要Guest OS
- 避免了虚拟机启动时所需要的系统引导时间和操作系统运行的资源消耗,利用Docker能够在几秒钟之内启动大量的容器,是虚拟机无法办到的(速度快)
- 容器的启动时间是秒级的,大量节约开发、测试、部署的时间
- Docker能够高效地部署和扩容,Docker容器几乎可以在任意平台上运行(部署简单)
- 虚拟机、物理机、公有云、私有云、个人电脑、服务器等
- 这种兼容性,可以让用户把一个应用程序从一个平台直接迁移到另外一个平台
- Docker能够高效地部署和扩容,Docker容器几乎可以在任意平台上运行(部署简单)
- 但是,虚拟机的安全性比容器好一些
- Docker与宿主机共享内核、文件系统等资源,更有可能对其他容器、宿主机造成影响
- 运行在容器上的docker程序,直接使用的都是宿主机的硬件资源
2.Docker架构
-
Docker使用C/S架构模式,使用远程API来管理和创建Docker容器
-
Docker基本组成
- 镜像(Image)
- 镜像是Docker的基础构建块,它是一个只读的文件,包含了运行容器所需的所有内容:代码、运行时环境、系统工具、库等
- Docker镜像可以被用来创建Docker容器,是创建Docker容器的模板
- 镜像是由一层一层的文件系统构建而成的,每一层文件系统都是前一层文件系统的增量变化
- 镜像是静态的,一旦创建就不会改变,如果需要修改一个镜像,需要创建一个新的镜像
- 容器(Container)
- 容器时Docker运行时的实体,是镜像的一个实例
- 容器可以被启动、停止、删除、暂停等操作
- 容器是一个隔离的运行环境,使用Linux内核的命名空间和控制组等技术,使得容器之间互相隔离,拥有自己独立的文件系统、进程空间、网络空间等
- 容器是轻量级的,可以在几秒内启动,因此非常适合用来快速部署和运行应用程序
- 仓库(Repository)
- 仓库是Docker镜像的集合存储地,可以理解为一个代码仓库
- 仓库分为公有仓库和私有仓库
- 公有仓库最知名的是Docker Hub
- 私有仓库则可以搭建在自己的服务器上,比如Docker Trusted Registry
- 每个镜像都有一个唯一的标识符,通常由仓库名、镜像名、标签组成
- 如:
repository:tag
的形式
- 如:
- 仓库可以包含多个版本的镜像,通过不同的标签进行区分
- Docker daemon:服务器组件,Docker最核心的后台进程
- Docker Client:客户端通过命令行或者其他工具使用Docker API和Docker daemon通信
- Docker Host:一个物理或者虚拟的机器用于执行Docker daemon和Container
- 镜像(Image)
3.Docker运行流程
更多推荐
已为社区贡献7条内容
所有评论(0)