[Docker][Docker简介]详细介绍

DieSnowK 2024-08-16 10:07:04 阅读 53

目录

1.Docker与虚拟机2.Docker架构3.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与宿主机共享内核、文件系统等资源,更有可能对其他容器、宿主机造成影响


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


3.Docker运行流程

请添加图片描述

请添加图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。