Docker简介

虚拟机和容器

都是一种虚拟化技术;

虚拟机通过中间层将一台或多台独立的机器虚拟运行于物理硬件上,如VMware,
而容器则直接运行在操作系统内核之上的用户空间上,即一个进程,如docker;

架构对比图:

          

1.虚拟机:
在物理硬件平台上,装上主机操作系统(Host OS),在Host OS上安装虚拟机管理程序,如VMware,即一个虚拟化层,在虚拟化层之上可以创建多个虚拟机(VM),并为各VM安装各自客户机操作系统(Guest OS),在Guest OS中则可以运行自己的应用程序;即相当于在一台物理主机上安装了多个独立的操作系统。
2.容器:
在物理硬件平台上,装上操作系统(OS),在OS上安装容器管理引擎,如docker,通过容器管理引擎可以创建多个容器,每个容器相当于一个进程,在其内部可以运行自己的应用程序;即相当于在一台物理机上运行了多个进程;

容器优势:
1.节省存储空间,减少系统开销
2.同样的硬件环境,可运行数量更多
3.启动快,秒级甚至毫秒级启动
4.迁移部署快

缺点:
1.隔离性更弱,相对不彻底
2.安全性更弱

两者各有利弊,可参考网上对比图;

在操作系统中,虚拟内存通常会被分成核心空间和用户空间这两个区块,
内核代码和驱动程序运行在内核空间,应用程序运行在用户空间,
当进程运行在内核空间时就处于内核态,而进程运行在用户空间时则处于用户态;

Docker

docker是一个轻量级容器管理引擎,也可以被称为轻量级虚拟化技术,
以docker为代表的容器技术是目前非常流行的一类技术;

docker将软件及其“依赖的环境”打包在一起,以镜像的形式交付,让软件运行在“标准的环境”中,
加上动态资源的限制,docker构造了一个“轻量虚拟环境”,
再加上秒级创建/删除虚拟机及动态调整资源的能力,
这非常符合云计算的要求,docker很有可能成为云计算的基石;

docker设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生产环境的一致性,
减少因运行环境不同而导致的软件运行问题;
推荐单个容器只运行一个应用程序,形成分布式应用程序模型,则应用程序可表示为一系列内部互联的容器,便于管理;

docker组件
客户端和服务器+镜像+仓库+容器
docker是C/S架构,但用户可在同一台宿主机上运行docker守护进程和客户端,再加上仓库,docker也是一种三层架构
镜像是构建docker世界的基石,用户基于镜像来运行自己的容器
仓库用来保存用户构建的镜像,分为公共和私有两种
容器包括一个执行环境、一个镜像格式和一系列标准操作
镜像是docker生命周期的构建和打包阶段,容器则是启动和执行阶段
镜像是层式结构,可以进行迅速更新迭代;

docker守护进程
通过监听/var/run/docker.sock套接字文件,来获取客户端的请求
只有root和docker用户组中的用户有权限执行docker命令
配置文件为/usr/lib/systemd/system/docker.service
工作目录为/var/lib/docker/;

docker架构

       

 

 

 

 

Docker overview

参考docker官方文档概览内容,总结如下,参考地址https://docs.docker.com/get-started/overview/

posted on 2020-04-10 21:25  流年似水zlw  阅读(280)  评论(0)    收藏  举报

导航