目录
一.Docker概述
1.Docker简介
Docker是一种轻量级的“虚拟机”
在Linux容器里运行应用的开源工具
2.Docker特点
服务彼此间相互独立,服务间的解耦。解耦:便于管理,防止数据过多积累在一个文件中(DNS三个配置文件)
服务可以灵活迁移,docker引擎,docker-ce(编译apache时,文件apr,apr-util可以在各种系统中使用)
3.Docker与虚拟机的区别
虚拟机容量占用大,容器不需要装系统,占用容量小
虚拟机安全,容器不安全(共享内核资源),攻击一个内核,其他全部瘫痪,可隔开,做资源控制
特性 | 虚拟机 | 容器 |
---|---|---|
隔离级别 | 操作系统级 | 进程级 |
系统策略 | Hypervisor | CGroups |
系统资源 | 5~15% | 0~5% |
启动时间 | 分钟级 | 毫秒级 |
镜像存储 | GB-TB | KB-MB |
群集规模 | 上百 | 上万 |
高可用策略 | 备份、容灾、迁移 | 弹性、负载、动态 |
容量 | 占用大 | 占用小 |
安全 | 安全(系统隔离) | 不安全(内核共享) |
弹性扩展 | 执行时间长 | 执行时间短 |
性能 | 弱于原生 | 接近原生 |
系统支持量 | 一般是几十个 | 单机支持上千个容器 |
4.Docker核心概念
docker是由三部分组成,分别为镜像(Image)、容器(Container)和仓库(Repository),下面就分别介绍一下这三个部分:
image镜像
docker镜像就是一个只读模板,比如,一个镜像可以包含一个完整的centos,里面仅安装apache或用户的其他应用,镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用
container容器
docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动,开始、停止、删除、每个容器都是互相隔离的,保证安全的平台,可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行再其中的应用程序
repostory仓库
仓库是集中存储镜像文件的沧桑,registry是仓库主从服务器,实际上参考注册服务器上存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)
仓库分为两种,公有参考,和私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下周,国内的docker pool,这里仓库的概念与Git类似,registry可以理解为github这样的托管服务。
5.Docker的优势
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
- 1、快速,一致地交付您的应用程序
Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。
容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:
您的开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。
他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。
当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。
测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。 - 2、响应式部署和扩展
Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。
Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。 - 3、在同一硬件上运行更多工作负载
Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情
6.Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
二.安装Docker
1.安装依赖包
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内核中支持逻辑卷管理的通用设备映射机制
它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构
2.设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装docker-ce
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#安装社区版
yum install -y docker-ce
4.开启docker,设置开机自启
#关闭防火墙,关闭核心防护
systemctl stop firewalld
setenforce 0
vi /etc/selinux/config
SELINUX=disabled
systemctl start docker
systemctl enable docker
5.镜像加速
直接下载镜像,速度很慢,而一般镜像有比较大,所以我们进行镜像加速,使用阿里云的源,即开启阿里云的镜像加速
必须要注册一个阿里云账号
cd /etc/docker/
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
##镜像加速需要去阿里云上查找
systemctl daemon-reload
systemctl restart docker
5.网络优化
开启路由转发
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
systemctl restart docker
systemctl restart network