Docker概述
Docker是什么?
- 是一种轻量级的"虚拟机"
- 是在Linux容器里运行应用的开源工具
Docker与虚拟机的区别
不同点 | container | VM |
---|---|---|
启动速度 | 秒级 | 分钟级 |
运行性能 | 接近原生(直接在内核中运行) | 5%左右损失 |
磁盘占用 | MB | GB |
数量 | 成百上千 | 一般几十台 |
隔离性 | 进程级别 | 系统级别(更彻底) |
错做系统 | 主要支持Linux | 几乎所有 |
封装程度 | 只打包项目代码和依赖关系,共享宿主机内核 | 完整的操作系统,与宿主机隔离 |
Docker的使用场景
- 打包应用程序简化部署
- 可脱离底层硬件任意迁移
例:服务器从腾讯云迁移到阿里云
Docker引擎(Docker Engine)
- Docker Engine是具有以下主要组件的客户端-服务器应用程序:
- 服务器是一种长期运行的程序,称为守护程序进程( dockerd命令)。
- REST API,它指定程序可以用来与守护程序进行通信并指示其操作的接口。
- 命令行界面(CLI)客户端(docker命令)。
Docker的架构(Docker architecture)
-
Docker使用客户端-服务器架构。Docker 客户端与Docker 守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。
-
Docker区别于传统的虚拟化,不需要虚拟硬件资源,直接使用容器引擎,所以速度快
-
Docker Client:客户端
- Docker客户端(docker)是许多Docker用户与Docker交互的主要方式。当您使用诸如之类的命令时docker run,客户端会将这些命令发送到dockerd,以执行这些命令。该docker命令使用Docker API。Docker客户端可以与多个守护程序通信。
-
Docker daemon:守护进程
- Docker守护程序(dockerd)侦听Docker API请求并管理Docker对象,例如图像,容器,网络和卷。守护程序还可以与其他守护程序通信以管理Docker服务。
-
Docker images:镜像
容器可以被打包成镜像 -
Docker container:容器
-
Docker registry:镜像仓库
- 存储镜像的地方,默认在公共的Docker Hub上查找,可以搞个人仓库。
安装Docker
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#yum-utils 提供了yum-config-manager
#device mapper存储驱动程序需要device-mapper-persistent-data和lvm2
#