Docker
docker
是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。
Docker和VM虚拟机的区别
VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用;
Container(Docker容器),在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装应用。
简单来说虚拟机就是虚拟出一套真实硬件来安装操作系统进行运行,Docker是在宿主的机器上直接创造一个操作系统
其他方面
虚拟机占用内存大,Docker很小
虚拟机启动很慢,Docker启动很快,快速部署是毫秒级。
Docker的集成性要比VM好。
Docker特点
1)上手快
用户只需要几分钟,就可以把自己的程序“Docker 化”。Docker 依赖于“写时复制” (copy-on-write)模型,使修改应用程序也非常迅速,可以说达到“随心所致,代码即改” 的境界。
随后,就可以创建容器来运行应用程序了。大多数 Docker 容器只需要不到 1 秒中即可 启动。由于去除了管理程序的开销,Docker 容器拥有很高的性能,同时同一台宿主机中也 可以运行更多的容器,使用户尽可能的充分利用系统资源。
2)职责的逻辑分类
使用 Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如 何管理容器。
Docker 设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署 的生产环境一致性。
从而降低那种“开发时一切正常,肯定是运维的问题(测试环境都是正 常的,上线后出了问题就归结为肯定是运维的问题)”
3)快速高效的开发生命周期
Docker 的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用 程序具备可移植性,易于构建,并易于协作。(通俗一点说,Docker 就像一个盒子,里面 可以装很多物件,如果需要这些物件的可以直接将该大盒子拿走,而不需要从该盒子中一件 件的取。)
4)鼓励使用面向服务的架构
Docker 还鼓励面向服务的体系结构和微服务架构。Docker 推荐单个容器只运行一个应 用程序或进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序或者服 务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调试应用程序 都变得非常简单,同时也提高了程序的内省性。(当然,可以在一个容器中运行多个应用程 序)
Docker安装
1.查看内核版本 <Docker 要求 CentOS 系统的内核版本高于 3.10>
uname -r 本机<内核版本: 3.10.0-1062.el7.x86_64>
2.把yum包更新到最新
这个步骤很有必要!!
我之前没更新就踩过坑
yum update
3.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4.设置yum源
sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
5.查看仓库中docker版本
yum list docker-ce –showduplicates | sort -r
6. 安装docker
sudo yum install docker-ce
7.启动Docker
sudo systemctl start docker
sudo systemctl enable docker //设置开机启动
sudo systemctl stop docker //停止Docker
8.查看版本
docker version
9.使用一下确认是否启动成功,使用search 查一下
docker search php
10.查看日志状态成功日志
systemctl status docker.service
卸载Docker
1.查询安装过的包
yum list installed | grep docker
安装过旧版本
docker.x86_64,docker-client.x86_64,docker-common.x86_64
2.删除安装的软件包
yum -y remove docker.x86_64
yum -y remove docker-client.x86_64
yum -y remove docker-common.x86_64