hellow,大家好,我是一名互联网职员,随着互联网的高速发展,企业中的微服务方面的技术日益的盛行!在此之下,有关于没一个服务节点的部署将会成为一大难题,并且十分的繁琐。但是好在Docker的出世成为了解决问题的好办法,在此后一段时间我将会和大家一同学习Docker,从入门到深入,欢迎大家的点评和问题!
想要学习Docker,首先要明白什么是Docker,那么我们将围绕几个问题进行:①什么是Docker?②为什么要使用Docker?③Docker的安装与使用?接下来,直接步入正题!
什么是Docker?
官方的定义:Docker是世界领先的软件容器管理平台。
什么是容器?
Docker不像普通的虚拟机一样是属于宿主机架构的,而是属于裸金属架构的一种!意思就是普通的虚拟机需要基于window,mac,或者linux等操作系统的支撑,比如常用的Virtual Box VM 等。在安装vm的时候需要设置安装基于操作系统虚拟出来的磁盘和内存大小供虚拟机内部的操作系统使用(如centOS等)。而Docker则不是这样做的,它则是单纯的裸金属架构,意思就是直接共享使用操作系统的资源!没一个Docker容器则以守护进程运行在操作系统上!(容器其实就是将软件打包成单元,以用于开发,交互和部署等工作)
为什么使用Docker?
Docker作为打包容器进行开发和交互工作,并且直接使用操作系统的资源,这样不仅大大减少了内存的消耗,并且效率也能翻倍出现!大致有一下突出的优点:
解决团队的开发环境问题:
假如团队的开发环境不一致,一个在window上一个在linux上,或者你自己的电脑一个在家里,一个在公司,这样的两台开发环境的电脑存在很大的不同,但是Docker出现可以打包出同样的开发环境!
秒级甚至毫秒级的启动时间:
普通的部署项目之前,可能你需要上传jar包,启动mysql服务,tomcat等,这样会消耗很多的时间,但是在Docker可以利用DockerFile直接一键的启动所有的服务!
持续的集成,交付和部署:
公司可能项目业务的庞大,会慢慢的采用缓存数据库redis或者消息中间件rabbitMQ等东西,甚至会涉及到分库分表等操作,但是这些软件都需要安装,在安装和使用的过程中难免会发生不必要的麻烦,安装中途ERROR等操作,但是Docker直接从中央仓库拉取打包就可以持续的集成和部署等工作!
服务器集群节点动态扩容:
此问题是很多公司常见的问题,由于服务的新建,集群或者服务需要扩充,平时你可能需要找一台新的linux服务系统,一步一步的安装数据库,jdk,tomcat等一系列的安装工作,但是docker不存在这样繁杂的操作,只需要将需要的软件工具的镜像进行打包在一个单元就可以快速实现!
总上所述,可以说在普通的项目部署或者集成方面,Docker可以甩传统模式好几条街道!
Docker内部的基本的名词
首先想要入门安装Docker需要知道Docker内部的一些核心的组件的名称和关系!
①镜像②容器③仓库
Docker的仓库其实和maven和git有十分大的相似之处,就是它有自己的远程的中央仓库和本地的仓库,提交和拉取都是和git一样的命令push和pull完成的,接下来为大家分析这三者的关系!
Docker的安装与使用?
Docker的安装十分的简单
你可以直接先yum search docker
然后找到自己需要的docker版本直接yum install docker 没有报错这可以安装成功!
安装之后进行systemcli start docker一下看看能不能正常的启动docker(centOS6 的版本的话用service start docker)
之后可以自行的练习一些docker的基础的命令,如:docker image ls是为了查看本地的docker内部的软件镜像
docker pull 镜像地址,可以直接从远程的中央仓库拉取镜像。docker push 镜像名称或者id,可以上传自己的中央仓库内部 包括docker rmi 镜像名称或者id,可以删除自己的本地镜像等等,很多的docker基本的命令,大家可以自己一一练习使用,可以使用docker --help查看所有的命令进行练习操作!
(后续会持续为大家更新docker的知识点,欢迎大家讨论技术点,谢谢大家!)