一、简介与概述
1.Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
2. Docker的主要目标是‘build ,ship and run any app,anywhere’,也就是说通过对应用程序组件的封装,分发,部署,运行等生命周期的管理。使用户的app(可以是一个web应用程序或者数据库应用等)及其运行环境能够做到‘一次封装,到处运行’。
3.Linux容器技术的出现解决了这个问题。而docker就是基于他的基础上发展过来的。将应用运行到docker容器上面,而docker容器在任何操作系统上都是一致的,这就是实现跨平台跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
4.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
5.Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
Docker实际上就是一个虚拟化轻量级linux服务器,可以解决我们在开发环境中运行配置问题。
二、为什么需要使用docker
1.在未使用docker前可能遇到的开发问题
我们开发一个javaweb项目时,需要依赖很多环境配置 比如:Tomcat、JDK环境、Nginx、Redis环境等。
本地需要安装这些环境Tomcat、JDK环境、Nginx、Redis环境等,在打war包给运维部署在linux服务器,运维人员也需要在linux服务器上安装Tomcat、JDK环境、Nginx、Redis环境。
但是有时候可能会发生这些问题:我在本地运行环境没有问题,但是打包到Linux服务器运行总是遇到很多错误,大多数由于一些版本冲突影响。
所以在这时候我们就可以使用docker部署和安装软件就非常方便,直接将该springboot项目制作成一个镜像文件,镜像文件中包含:jdk、tomcat等等环境的版本信息 直接部署linux即可,减少依赖冲突概率。
例如:
在linux中安装一个mysql可能很麻烦,在不同的linux内核中安装Mysql时,很容易发生版本冲突的问题。
而对比使用docker后安装mysql:
docker pull mysql:8.0
docker create --name mysql3308 -e MYSQL_ROOT_PASSWORD=root -p 3308:3306 mysql:5.7
2.使用docker的好处
- 简化配置 安装创建非常的方便
- 代码流水线(Code Pipeline)管理 传统项目部署可能需要经过很多环节,容易产生版本的依赖冲突问题,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少 ;
- Devops 开发与运维一体化减少沟通的成本 (docker或者是k8s实现)
- 虚拟技术 快速部署
- 弹性扩容
3.Docker的核心三要素
- 仓库 :专门存放我们镜像文件的 类似于 腾讯管家软件市场,app软件市场
- 镜像 :类似于你的安装包(下一步运行 描述运行所需要的环境配置和依赖)Redis镜像,Tomcat镜像==>自动下载JDK镜像
镜像方式来源:
自己的项目(自己创建镜像文件)
第三方镜像来自于https://hub.docker.com/仓库
- 容器 :用于运行我们的镜像文件 有自己独立的ip和网络信息化 虚拟化出一个轻量级的Liunx操作系统精简版本
4.应用场景
1.Web 应用的自动化打包和发布。
2.自动化测试和持续集成、发布。
3.在服务型环境中部署和调整数据库或其他的后台应用。
4.从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
三、Docker的安装
官网:
或Docker: Accelerated Container Application Development
安装Docker的要求:CentOS7 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
1.通过 uname -r 命令查看你当前的内核版本
uname -r
2.使用 root 权限登录 Centos。确保 yum 包更新到最新。
yum -y update
该过程大概需要维持10分钟左右 |
3.卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
5.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6.可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
7.安装docker
sudo yum install -y docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1
8.启动并加入开机启动
systemctl start docker
systemctl enable docker
9.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version