1. 介绍
Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
docker官网:https://www.docker.com/
文档:https://docs.docker.com/
仓库:https://hub.docker.com/
2. 为什么出现
一款软件产品: 开发–上线 两套环境,应用环境,应用配置。
开发–运维出现问题:在我的电脑上可以允许,发布上线就出现问题。
环境配置是十分的麻烦,每一个都要部署环境(集群Redis、ES、Hadoop…) ,费事费力。
发布一个项目( jar + (Redis MySQL JDK ES) ),项目能不能带上环境安装打包。
开发环境Windows—发布到Linux:
传统:开发jar,运维来发布
现在:开发打包部署上线,一套流程做完!
安卓流程:java — apk —发布(应用商店)一 张三使用apk一安装即可用!
docker流程: java-jar(环境) — 打包项目帯上环境(镜像) — ( Docker仓库:商店)
3. 虚拟机和容器化技术
虚拟机技术缺点: 1、资源占用十分多 2、冗余步骤多 3、启动很慢!
容器化技术不是模拟一个完整的操作系统
虚拟机技术的不同: 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响
DevOps(开发、运维)
(1)应用更快速的交付和部署
传统:一堆帮助文档,安装程序。
Docker:打包镜像发布测试一键运行。
(2)更便捷的升级和扩缩容
使用了 Docker之后,部署应用就和搭积木一样,项目打包为一个镜像,扩展服务器A,服务器B
(3)更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
(4)更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例,服务器的性能可以被压榨到极致。
docker 组成
(1)镜像(image):
docker镜像就好比是一个目标,可以通过这个目标来创建容器服务,tomcat镜像==>run==>容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
(2)容器(container):
Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。Docker容器包含了所有的某个应用运行所需要的环境。目前就可以把这个容器理解为就是一个简易的服务器系统。
(3)仓库(repository):
仓库就是存放镜像的地方,仓库分为公有仓库和私有仓库。(很类似git)
4. 安装
Linux安装(win安装直接去官网下载安装包 Docker Desktop)
#1.卸载旧版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
#2.需要的安装包
yum install -y yum-utils
#3.设置镜像的仓库
yum -config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#上述方法默认是从国外的,不推荐
#推荐使用国内阿里云的
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#4.更新yum软件包索引
这里有时会出现版本问题,centos8没有该参数,解决办法为:去掉fast参数,
yum makecache fast
#5.安装yum源中默认的Docker
yum -y install docker
#安装社区版Docker(推荐安装,否则启动服务时可能会出现Failed to start docker.service: Unit docker.service not found)
yum -y install docker-ce
#6.启动docker
systemctl start docker #运行Docker守护进程
systemctl stop docker #停止Docker守护进程
systemctl restart docker #重启Docker守护进程
systemctl enable docker #设置Docker开机自启动
systemctl status docker #查看Docker的运行状态
#7. 使用docker version查看是否按照成功
docker version
#1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#2. 删除资源
rm -rf /var/lib/docker
# /var/lib/docker 是docker的默认工作路径!