一、docker的发展历史
https://www.cnblogs.com/rongba/articles/14782624.htmlhttps://www.cnblogs.com/rongba/articles/14782624.html
二、docker的概述
Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。
Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。
Docker的设计宗旨:封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。
三、容器的特点
- 灵活:即使是最复杂的应用也可以集装箱化。
- 轻量级:容器利用并共享主机内核。
- 可互换:可以即时部署更新和升级。
- 便携式:可以在本地构建,部署到云,并在任何地方运行。
- 可扩展:可以增加并自动分发容器副本。
- 可堆叠:可以垂直和即时堆叠服务。
四、docker与虚拟机的区别
特性 | Docker容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
计算能力损耗 | 几乎无 | 损耗 50%左右 |
性能 | 接近原生 | 弱 |
系统支持量(单机) | 上千个 | 几十个 |
隔离性 | 资源隔离/限制 | 完全隔离 |
五、容器技术的分类
- docker
- podmandocker——相似 OCI redhat
- K8s
- container——docker核心组件之一
- LXC——linux容器化技术
- crio——轻量级,专门用于 k8s
- apche mesos——容器编排平台
六、容器的重要技术
docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作。
七、namespace的六项隔离
namespace | 系统调用参数 | 隔离内容 |
---|---|---|
UTS | CLONE_NEWUTS | 主机名与域名 |
IPC | CLONE_NEWWIPC | 信号量、消息队列和共享内存 |
PID | CLONE_NEWPID | 进程编号(重点) |
NETWORK | CLONE_NEWNET | 网络设备、网络栈、端口等(重点) |
MOUNT | CLONE_NEWNS | 挂载点(文件系统) |
USER | CLONE_NEWUSER | 用户和用户组(3.8以后的内核才支持〉 |
八、docker的核心概念
- 镜像
docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 docker容器引擎的只读模板。
- 容器
Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。
- 仓库
Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。
Docker 的镜像、容器、日志等内容全部都默认存储在/var/lib/docker
九、docker的安装
9.1 安装依赖包
9.2 安装阿里云镜像源
9.3 安装docker-ce
9.4 启动docker
9.5 查看docker版本信息
9.6 查看docker信息
9.7 搜索nginx镜像
9.8 获取镜像nginx
9.9 镜像加速下载
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
9.10 创建docker文件夹并配置相关文件
9.11 查看镜像
9.12 根据镜像的唯一标识 ID 号,获取镜像详细信息
用docker images来查看并获取ID号,然后用docker inspect ID查看详细信息!
注意:这里的ID号用自己的,下列为举例使用
9.13 为本地镜像添加新的标签,同时删除镜像
9.14 存出镜像
9.15 存出nginx文件
9.16 添加新的标签同时登录公共仓库
上传镜像
十、虚拟化
10.1 虚拟化概述
虚拟化:将应用程序和系统内核资源进行解耦,以操作系统级别进行隔离,目的是提高资源利用率
10.2 虚拟化架构
- 寄居架构
本机(真实操作系统)--->虚拟化产品--->虚拟化操作系统/软件
- 源生架构
裸金属(服务器)--->虚拟化产品
10.3 核心组件
两大核心组件:QEMU、KVM
10.4 虚拟化类型
在一个操作系统内,模拟多个操作系统,以软件的方式模拟物理设备的功能