📢不得不感叹,互联网的发展是真他妈迅捷。刚在脑子里有了一个虚拟化的概念,现在又整出来一个容器化,我盖了帽了!小了,是我格局小了!
📢身为新时代的网络工程师,传统的路由交换已经满足不了日常。SDN、网络自动化、虚拟化、容器化的出现已经慢慢的代替了传统的数据通信。NetDevOps更是要求现代的网络工程师让编程和自动化成为日常的口袋技能。这个趋势下,我们不得不让自己有闪光点,不然迟早会被淘汰!🤪
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢未来很长,值得我们全力奔赴更美好美好的生活✨
1️⃣容器与传统虚拟技术的比较
1.传统虚拟技术需要为了一个功能,在底层却需要运行整个OS,对资源的浪费比较大。
2.容器技术没有OS部分,只带有程序运行的环境,可以理解为轻量的虚拟化技术。
3.图示比较:
2️⃣误区
误区一:
1.容器不是虚拟机,无法和虚拟机来比较。容器更像是带环境的服务。每一个服务运有一个正在运行发进程,如果进程故障,服务停止。而容器也具有这些特点,docker有一个进程来关注每一个容器的进程是否正常运行,如果没有,则整个容器就down了。
2.容器环境可以和底层是不同的linux系统,例如底层是CentOS,但是容器中环境可以是ubuntu、debian等,并带有相应的依赖包。容器环境和底层环境公用一个Linux内核。
3.图示比较:
误区二:
1.我们不需要登录到容器对其进行维护和管理。因为容器产生的镜像是由代码(Dockerfile)定义的,因此只需要修改Dockerfile的信息即可。因此传统虚拟机我们如果要长期使用,必须好好的呵护它,但是容器并没有这个特点,需要使用的时候可以短时间大批量生成,而不需要的时候扔掉即可,弹性极好。
2.Dockerflie图示:
3️⃣容器的迁移性
1.传统的Linux运维环境不同,部署迁移完结特别困难。但是容器自带环境,则无需考虑。
2.在不同环境部署时,我们只需再测试环境时将镜像push到Dockerhub(类似于应用商店,可以装私有的仓库)。在生产环境时在pull镜像到本地即可,然后生成容器,无需考虑其他环境问题。同时,容器环境也实现了不同应用环境之间的隔离。
3.现在的程序员,发布的不是单一的代码,而是带环境的代码,也就是将代码封装在容器中发布。
4.迁移过程图示,使用push和pull:
4️⃣Docker在DevOps中的位置
1.DevOps:开发->打包->部署->上线一套流量快速走完。
2.Docker是容器技术的一个产品。出现在NevOps的部署阶段,在开发和运维之间搭建了一个桥梁。
5️⃣Docker的优势
1.启动非常快,秒级实现。
2.资源利用率高,一台高配置服务器可以跑上千个docker容器。
3.更快的交付和部署,一次创建和配置后,可以在任意地方运行。
4.内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率易迁移,平台依赖性不强。
5.总结:
6️⃣Docker的核心概念
1.镜像:是一个只读的模板类似于安装系统用到的那个ISO文件,我们通过镜像来完成各种应用的部署。
2.容器:镜像类似于操作系统,而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的。
3.仓库:存放镜像的一个场所,仓库分为公开仓库和私有仓库。最大的公开仓库是Docker hub (hub.docker.com
),国内公开仓库(dockerpool.com
)。
7️⃣Docker安装
地址:https://docs.docker.com/engine/install/
,下载docker时,可以换国内源。
安装教程: Docker安装