网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
什么是Docker
Docker是一种虚拟技术,诞生于2013年,是dotCloud公司研发的开源项目,因为docker这个公司后来改名docker inc,docker的目标是实现轻量级的操作系统虚拟化解决方案。通俗点说,我们想在一台机器上运行多个系统,就产生了虚拟机,当我们想在一个系统运行很多虚拟环境的时候,虚拟机就不行了,这时候就出现了docker,docker基于linux容器技术,再进行了很多封装,用户不用关心容器的管理,可以使操作更加简单。用户使用docker容器就像使用一个快速轻量级的虚拟机一样,非常的简单方便。
Docker跟虚拟机有很多不同之处,容器是在操作系统层面实现虚拟化,直接复用本机
操作系统,而传统虚拟机是在硬件层面实现 见下图:
为什么使用Docker
作为一种虚拟化技术,docker与传统虚拟机相比,具有众多的优势:
更快速的交付和部署
在项目整个过程中,docker都可以发挥自己的优势,开发在开发代码的时候,可以构架一个开发容器,开发完成后,运维人员可以直接使用开发的容器来部署项目,docker可以快速的创建复制容器,docker容器很轻很快,后期测试的时候也可以轻松使用容器来部署测试环境。可以快速的提高整个链条的效率。
高效扩容
因为docker可以在任意的平台上运行,包括物理机,虚拟机,各种云环境,服务器等,所以如果想把一个项目迁移到另外一个平台,非常的简单方便,docker的兼容和轻量特性,可以让你轻松实现服务器的扩容迁移等操作。
更高的资源利用率
因为docker的轻量级特征,一台主机上可以运行上千个docker容器,容器只有在运行项目时,才消耗系统资源,应用的性能很高,而系统的开销却很小,可以保证很高的资源利用率。
Docker的结构
Docker引擎
Docker引擎主要组件如下:
Server是一个常驻进程,用来管理整个docker的交互。
实现客户端和服务端的通信。
镜像image
镜像就是一个环境的只读的模板,一个镜像里面包含了虚拟的操作系统环境,可以安装各种你需要的项目软件,比如tomcat,mysql等等。有了镜像,就可以根据这个镜像来创建docker容器,无论你在什么地方,使用这个镜像都可以复制出同样的容器环境。
仓库:
仓库就是集中放置镜像的场所,主要分为公有仓库和私有仓库,最大的公有仓库就是docker hub,存放了大量成熟的镜像供用户下载使用。国内的有时速云,网易云等,当然你也可以在本地网络创建自己的私有仓库。
容器:
Docker使用容器来运行应用,容器就是镜像运行的运行实例,我们可以通过成熟的镜像来创建一个容器,而后将自己的应用运行到上面。如果在公司内部,你可以安装自己的所需环境的软件,然后整个生成成一个docker镜像,这时候就可以将镜像共享给别人,大家就可以执行镜像,运行出容器,就有了你之前的那个环境,使用起来非常方便。
Docker的基本使用
Docker的常用命令(以mysql为例)
1:获取镜像
可以使用docker pull的命令,比如 docker pull mysql:8.0
2:列出所有镜像
docker images
可以看到你的docker中的下载的镜像
$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql:8.0 mysql:8.0 6a77ab6655b9 8 weeks ago 194.6 MB
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
254613a03fab5e56a57acb)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!