一、先来唠唠Docker

说给自己的话:
每一个刚入职 的人
找一个优秀的人
学习做事方法 做人
慢慢的像他
成为他
你就能接触更优秀的人
不断学习、进步
成为他!
慢慢的 你就是别人要学习的优秀的人

目录

    • 1.Docker是什么(历史)?
    • 2.Docker架构
    • 3.为什么要用它?

1.Docker是什么(历史)?

昨天的学习我知道了docker它是由几个IT从业者创业,在2010开发出来的,当时很冷淡,而且公司很艰难!核心领导者2013年开放了源代码,人们发现这个东西真的很强大!很多人加入到其中,2014年推出1.0版本,从此docker走上巅峰之路。(其实开源的思想:我把东西共享出来,让更多人学习,让更多人收获,其实它的价值无限扩大)

docker我的理解其实就是小型的虚拟化技术,它能虚拟出当前工程或者项目最小、最精简的软硬件环境,跟现有的vmware虚拟化技术相比,它直接是将项目和所需环境打包,然后运行在kernel上,而在Windows机器上虚拟出的linux环境,是全套的,它不仅要虚拟出整套环境,还要虚拟出配套的硬件,而且工程与kernel是独立的,当项目部署时,要重新部署项目配套的环境,最后才能在kernel上面跑。区别如下图:

一、先来唠唠Docker_第1张图片

2.Docker架构

理解docker架构,知道其工作原理,对后期学习和深入特别重要,所以一定要理解清楚。

一、先来唠唠Docker_第2张图片

我自己的理解如下:

先将整个架构分为三大块:docker的Client端、docker的host、以及docker的Registry

总结下来就是docker的核心三大模块:容器、镜像、仓库

一、先来唠唠Docker_第3张图片

  1. 相当于Java面向对象中的实例,而Images就相当于对象,通过New可以创建多个实例,我们可以通过"docker run 镜像",创建多个Container。即Container(容器)是有docker运行镜像创建的。

  2. 架构图中的:docker run (运行)、docker pull(拉取)、docker build(创建),运行、拉取、创建都是对镜像而言的。

一、先来唠唠Docker_第4张图片

  1. Images(镜像):包含运行环境一个精简集,小巧、高效
  2. 仓库(repository):存储镜像,官方地址:https://hub.docker.com

3.为什么要用它?

每接触一个新的技术和领域,知道它为什么会出现?基于什么样的痛点?未来发展状况等来分析,带有目的性和方向性去学习,可以更好地进步!

通过一个实例来细说,为什么要用docker?

目前我接触到的业务场景是这样的,部署一个工程或项目:

  • 首先,我得准备好基础环境(配置网络,集群之间免密、关闭防火墙、selinux、安装jdk、MySQL、Nginx、Tomcat等),之后还得准备工程或项目环境(安装es、mqtt、rabbitmq、部署redis、安装consul)。
  • 其次,联系工程或项目开发人员,开始部署,不断地去调测基础环境和业务
  • 最后,将调测通过的工程和项目上线应用

过程中,只要某个环节出了问题,整个流程中断。而且还需要运维人员、开发人员、测试调测人员同时接入合作。除此之外,如果基础环境和项目环境升级,或者项目迁移,都需要改变,效率低、耗时多。

基于上面的痛点,docker逐渐发展壮大

docker部署场景:

  • 首先,将工程或项目需要的配置与相关的包打包成docker镜像
  • 之后,只需要运行工程或项目镜像即可完成项目部署
  1. 不再花大量时间在环境上配置,直接将所需配置与项目包打包成镜像

  2. 因为打包的镜像是运行在kernel上,而linux现有distribution的kernel差别不大,项目迁移、升级,不用担心环境问题

  3. 打包的镜像就像集装箱,相互独立

    这里举个集装箱实例:一个集装箱装蔬菜,一个集装箱装生化武器,这两个集装箱是可以放在同一艘轮船上的。而真实场景它俩是不可以同时存在的。

  4. 镜像可以最大限度利用资源,就像集装箱,利用每个空间,尽可能多的存放货物

  5. 因为精简,所以打包的镜像较小(大的仅几百M,小到kb),运行效率高。

你可能感兴趣的:(Docker创值之路,docker,服务器,运维)