一、docker简介:
1、是什么:
(1)为什么会有docker出现,将解决什么样的问题:
当我们在开发一个项目的时候,假如您自己的电脑有您自己的开发环境,别人的电脑有他自己的开发环境,您开发的项目依赖您当前的配置还要依赖一些配置文件,除此之外,您的项目开发好之后还要进入测试环境,生产环境。那您希望如何在部署过程中不出现令人头疼的版本和配置问题,也无需编写代码和进行故障修复?
docker就可以解决这一问题,它给出了一个标准化的解决方案——系统平滑移植,容器虚拟化技术。
就是因为环境配置相当麻烦,每一台机器都要配置一遍,项目部署换一台服务器,就要重来一次,那么,软件可不可以带环境安装呢?即在安装的时候将需要的原始环境原封不动的复制过来。消除了在你电脑上可以运行,而在我电脑就失败的问题。
(2)docker理念
docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP及其运行环境能做到“一次镜像,处处运行”。
docker就是将应用打成镜像,通过镜像运行在Docker容器上面的实例,而docker在任何操作系统上都是一致的,这就实现了跨平台,跨服务器,只需要一次配置好环境,换到了别的机子也可以一键部署好,大大简化了操作。
一句话:docker是一个解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
2、能干嘛:
一次构建,处处运行:
(1)更快速的应用交付和部署:
传统的开发需要提供一堆的安装程序和说明文档,安装部署后需根据配置文档进行繁杂的配置才能运行,Docker化之后,只需要交付少量的容器镜像文件,加载镜像,创建容器就能运行,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。
(2)更快捷的升级和扩缩容
随着微服务架构和docker的发展,大量的应用会通过微服务方式架构,运用Docker,应用的升级将变得非常容易,当现有的容器不足以支撑业务时,可通过镜像运行新的容器进行快速扩容。
(3)更简单的系统运维
应用容器化运行后,生产环境运行的应用可与开发、测试环境高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。
(4)更高效的计算资源和利用
Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。
Docker应用场景
Docker借鉴了标准集装箱的概念,Docker将这个模型运用到自己的设计中,唯一不同的是:集装箱运输货物,而Docker运输软件。
3.去哪下载
官网:Docker官网:http://www.docker.com
仓库:Docker Hub官网: https://hub.docker.com/
二、Docker安装
1、前提说明
docker依赖已存在并运行的Linux内核环境,Docker实质上是在已运行的Linux下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的Linux主机,因此,Docker必须部署在Linux内核系统上,如果其他系统想部署Docker就必须安装一个虚拟的Linux环境。
前提条件
目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上,
要求系统为64位、Linux系统内核版本为 3.8以上,这里选用Centos7.x
2、Docker的基本组成:
(1)镜像:
Docker镜像(image)就是一个只读的模板。通过镜像可以创建容器,并且可以创建多个。Docker镜像文件类似于我们通过Java中的类,而Docker容器就类似于Java中new出来的实例对象
Docker | 面向对象 |
容器 | 对象 |
镜像 | 类 |
(2)容器:
从面向对象的角度:
Docker利用容器独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就相当于一个虚拟化的运行环境,容器是用镜像创建的运行实例,镜像是静态的定义,容器是镜像运行时的实例。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台
从镜像容器的角度:
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
(3)仓库:
docker仓库是集中存放镜像文件的场所。
类似于Maven仓库存放各种jar包的地方;
类似于github仓库,存放各种git项目的地方;
Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub(https://hub.docker.com/)。
3、Docker平台架构图解及工作原理(入门版):
工作原理:
Docker是一个C/S结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器,是一个运行时环境,就是我们前面说到的集装箱。
4、安装步骤
(1)centOS7安装Docker:
1)确定你是CentOS7及以上版本:查看版本命令:cat /etc/redhat-release
2)卸载掉旧版本
3)yum安装gcc相关: centOs要能上外网;运行命令行 yum -y install gcc 和 yum -y install gcc-c++两个命令;
4)安装需要的软件包(这个是官网的要求):yum install -y yum-utils;
5)设置stable镜像仓库:官网要求我们:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo;但是会出现报错,为了避免这个错误,我们用一下这个命令:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo;
6)更新yum软件包索引:yum makecache fast
7)安装DOCKER CE: yum -y install docker-ce docker-ce-cli containerd.io
8)启动docker:systemctl start docker
9)测试: docker version 查看docker的版本;
10)卸载:依次运行命令行,删除安装过的: