小白了解Docker容器技术-LMLPHP

一、什么是Docker👑

        有一个最常见的例子来很好的帮我们简单了解Docker容器技术:

Docker容器正是解决这样的问题的,通过Docker容器化技术,将应用程序及其依赖项打包成一个独立的容器,容器中包含了应用程序运行所需的所有依赖项和环境,通过容器化技术,可以在不同操作系统、不同环境中运行应用程序,避免了不兼容性问题。

但其实Docker的用处远不止如此:

  • 更高效的利用系统资源:由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。
  • 更快速的启动时间:传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
  • 持续交付和部署:对开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。Docker完全可以做到这一点。
  • 更轻松的迁移:由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
  • 更轻松的维护和扩展:Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的 官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。

1.1 Docker对比传统虚拟机总结🎈

小白了解Docker容器技术-LMLPHP

二、镜像、仓库和容器👑

        Docker包括了三个基本概念:

  • 镜像Image):Docker镜像①它是一个特殊的文件系统,提供Docker容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。②它不包含 任何动态数据,其内容在构建之后也不会被改变。③它是使用分层存储技术Union FS 来存储的。④它是通过Dockerfile来构建的,Dockerfile是一个文本文件,通过其描述的指令,Docker可以自动化构建出一个Dokcer镜像,并将其保存在Docker仓库中。

  • 仓库Repository):Docker仓库①它是一个用于存储、管理和分享Docker镜像的平台。②它分为公共仓库和私有仓库,公共仓库由Docker官方提供,私有仓库由用户自己搭建存储镜像。③通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本的镜像。

  • 容器Container):Docker容器①它和镜像之间是 实例 的关系。这样解释:假设python中有一个类(class)Person被创建,它的初始化参数为def __init__(self, name, age),那么当我们编译代码person1 = Person("Alice", 19),person2 = Person("Jon", 24)时,person1和person2就是两个不同的实例。②镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

小白了解Docker容器技术-LMLPHP

2.1 容器与虚拟机的区别🎈

Docker容器和虚拟机主要区别在于他们的架构和资源利用方式不一样。

Docker容器是基于操作系统级别的虚拟化技术,它允许在单个操作系统实例中运行多个容器,每一个容器都可以拥有之间的应用程序、库和文件系统,并且它们都可以共享宿主机的操作系统的内核和硬件资源。因此占用的资源相对较少,启动和停止速度也非常快。

虚拟机则是基于硬件级别的虚拟化技术,它通过在物理服务器上运行多个虚拟机来实现资源的隔离和共享。多个虚拟机它们并非在同一个操作系统下,每一个虚拟机都有之间的操作系统和应用程序,并且它们需要使用虚拟化层来模拟硬件资源,所以占用的资源相对较多,启动和停止的速度比较慢。

这也是为什么Docker容器为什么更加轻量、灵活和高效的原因。

05-30 16:51