Docker入门学习笔记-V2022.07.25

目录

什么是Docker?

Docker的应用

简化配置:

代码流水线:

 提高开发效率:

隔离应用:

整合服务器:

调试能力:

多租户环境:

快速部署:

完整的Docker有以下几个部分组成:

参考文章链接:


什么是Docker?

Docker是一个开源的应用容器引擎,让开发者可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。 容器是完全使用沙箱机制,相互之间不会有任何接口。

可以理解为是个轻量级的虚拟机。比如当我们在windos系统里想要用一个需要Linux系统来运行的应用程序,这时我们就需要下载一个虚拟机来虚拟出完整的Linux系统,里面不仅有我们需要的环境,连我们不需要的部分也会一同下载配置,这会浪费很多资源和时间。使用Docker容器来运行应用就是一个很好的解决方案之一,只配置你需要的,你不需要的能不配置就不配置。 虚拟机是虚拟出完整的系统,Docker是虚拟出一个完整的进程。

下面根据 “ 一文读懂Docker原理 - 知乎 ” 这篇文章给大家详细介绍下Docker:

我们知道进程是Linux操作系统执行任务的最小单元,一个时间同步服务是一个进程,一个Java服务是一个进程,一个Nginx服务是一个主进程+若干工作进程,总之,把一个系统比作一个办公室,进程就是一个个打工人:

 正常情况下,一个进程是能感知到其他进程的存在的,正如一个打工人放眼望去,办公室里还坐着一群其他打工人。而容器技术首先要解决的就是进程的隔离,即一个进程在运行的时候看不到其他进程。如何让一个打工人在工作时看不到其他打工人呢?方法是给这个打工人带一个VR眼镜,于是他看到的不是一个真实的办公室,而是一个虚拟的办公室。在这个虚拟办公室中,只有他一个打工人,没有别人。

容器进程本质上是一个运行在沙盒中的隔离进程,由Linux系统本身负责隔离,Docker只是提供了一系列工具,帮助我们设置好隔离环境后,启动这个进程。最基本的隔离就是进程之间看不到彼此,这是由Linux的Cgroup机制实现的。进程隔离的结果就是以隔离方式启动的进程看到的自身进程ID总是1,且看不到系统的其他进程。具体隔离方式大家可以点击链接查看原文章。

Docker的应用

了解了Docker是什么之后,下面我们来看看Docker用来做什么,有哪些应用。

简化配置:

这是Docker公司宣传的主要使用场景。虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台,而如上文所述,Docker同样提供相似的功能,而且降低了额外的开销。同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境耦合度。

代码流水线:

代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。

程序员使用Docker的9大好处?

 提高开发效率:

不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。理想状态中,要达到第一个目标,我们需要将每一个服务都跑在独立的虚拟机中以便监控生产环境中服务的运行状态。然而,我们却不想每次都需要网络连接,每次重新编译的时候远程连接上去特别麻烦。这就是Docker做的特别好的地方,开发环境的机器通常内存比较小,之前使用虚拟的时候,我们经常需要为开发环境的机器加内存,而现在Docker可以轻易的让几十个服务在Docker中跑起来。

隔离应用:

有很多种原因会让你选择在一个机器上运行不同的应用,比如之前提到的提高开发效率的场景等。
我们经常需要考虑两点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务。

整合服务器:

正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。

调试能力:

Docker提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。它们提供了很多的功能,包括可以为容器设置检查点、设置版本和查看两个容器之间的差别,这些特性可以帮助调试Bug。

多租户环境:

另外一个Docker有意思的使用场景是在多租户的应用中,它可以避免关键应用的重写。我们一个特别的关于这个场景的例子是为IoT(译者注:物联网)的应用开发一个快速、易用的多租户环境。这种多租户的基本代码非常复杂,很难处理,重新规划这样一个应用不但消耗时间,也浪费金钱。使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的diff命令。

快速部署:

在虚拟机之前,引入新的硬件资源需要消耗几天的时间。虚拟化技术(Virtualization)将这个时间缩短到了分钟级别。而Docker通过为进程仅仅创建一个容器而无需启动一个操作系统,再次将这个过程缩短到了秒级。这正是Google和Facebook都看重的特性。你可以在数据中心创建销毁资源而无需担心重新启动带来的开销。通常数据中心的资源利用率只有30%,通过使用Docker并进行有效的资源分配可以提高资源的利用率。

完整的Docker有以下几个部分组成:

  • Docker Client客户端:

  • Docker Daemon守护进程:

  • Docker Image镜像:

  • Docker Container容器:

参考文章链接:

Docker中文社区 - 知乎

Get Docker | Docker Documentation

docker中文社区,docker帮助,docker手册,docker教程,docker安装手册 - docker中文社区

Docker是什么?

一文读懂Docker原理 - 知乎

『中级篇』docker导学(一)_慕课手记

程序员使用Docker的9大好处?_人邮异步社区的博客-CSDN博客_使用docker技术的好处有哪些

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值