一、Docker的概念
1、云计算三层架构
服务 | 说明 | 应用 |
IAAS | 基础设施及服务 | 硬件(服务器、网络设置、防火墙等)虚拟化 网络虚拟化(大二层) 例:openstack |
PAAS | 平台及服务 | 环境 例:数据库、 docker 、kubernetes |
SAAS | 应用及服务 | 应用 例:应用商店的应用 |
而Docker就是PAAS中的技术。
2、Docker是什么
Docker是一种轻量级的“虚拟机”,是一个开源的应用容器引擎。容器是完全使用沙箱机制,相互之间不会有任何接口
· 轻量级表示它体积小,灵活
· 而说它是虚拟机,又不是真正的虚拟机,因为它里面没有系统
· 开源表示它是免费的
3、Docker和虚拟机的区别
docker把容器化技术做成了标准化平台(docker统一/指定了容器化技术的标准化平台)
使用docker有什么意义
· docker引擎统一了基础设施环境-docker环境—》image —》封装一个简易的操作系统
· docker引擎统一了程序打包(装箱)方式-docker镜像—》images
· docker引擎统一了程序部署(运行)方式-docker 容器——》基于镜像——》运行为容器(可运行的环境)
要求:内核在3.8以上(排除了centos6)
docker 1.30版本迭代docker-ce docker-ee 1.7版本因为企业版和社区版
特性 | Docker容器 | 虚拟机 |
启动速度 | 秒级 | 分钟级 |
计算能力损耗 | 几乎无 | 损耗50%左右 |
性能 | 接近原生 | 弱于 |
系统支持量(单机) | 上千个 | 几十个 |
隔离性 | 资源隔离/限制 | 完全隔离 |
4、使用场景
应用程序(封装/构建镜像)——》运维下载,使用容器技术进行运行/发布
· 打包应用程序简单部署
· 可脱离底层硬件任意迁移(实现了应用的隔离,将应用拆分并进行解耦),例如:服务器从腾讯云迁移到阿里云
· 持续集成和持续交付(cI/CD) :开发到测试发布
· 部署微服务
· 提供PAAs产品(平台即服务){OpenStack的云主机类似于阿里云的ECS,属于IAAS、Docker (KBS)属于PAAS}
5、Docker的核心概念(重点)
镜像
· 一个面向Docker容器引擎的只读模板(简而言之,就是将一个服务已经部署完毕的环境打包)
容器
· 根据镜像创建的运行实例(即虚拟机)
仓库
· 集中保存镜像的地方(分为公有仓库和私有仓库,公有仓库就是Docker官方仓库)
二、Docker相关命令
安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-utils提供了yum-config-manager
device mapper存储驱动程序需要device-mapper-persistent-data和lvm2
Device Mapper 是Linux2.6内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker-CE
yum install -y docker-ce
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
systemctl start docker.service
systemctl enable docker.service
镜像加速
systemctl daemon-reload
systemctl restart docker
网络优化
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
service network restart
systemctl restart docker
总结(报错):
解决办法:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install docker-ce