关于Docker

前提 tí)

我将写下我今天学到的东西。

这个问题

“容器”的概念是什么?

可供储存和搬运物品的容器

容器中装有应用程序。
可以在家中的个人电脑、笔记本电脑或数据中心运行的服务器上,
将其移植到AWS、AZURE或GCP的虚拟服务器上并执行应用程序。

传统的技术模型

应用程序执行环境正在发生变化。
一个硬件设备上有一个操作系统,可以安装和使用多个应用程序。
这是传统型应用程序的执行环境。
有些资源浪费,成本较高是其中的缺点。

虚拟化技术

硬件和操作系统都是类似的。
安装一个名为虚拟机监控器(例如VMware、Xen、Hyper-V)的系统。
在虚拟机监控器上安装Windows或Linux等操作系统,可以虚拟地运行一个服务器(虚拟服务器)。
虚拟机监控器可以运行多个虚拟服务器,包括像EC2这样的虚拟服务器也是以虚拟服务器的形式运行的。

优点

获取整个操作系统的备份很简单。

容器

硬件和操作系统均相同。
安装容器引擎和容器守护进程(Docker是最著名的)。
容器之间相互独立,彼此之间没有互动。
可以将每个运行环境想象成一个容器,统一在一个容器内。

为什么它轻量化呢?

容器的操作系统与Linux内核不同,但由于Linux内核具有兼容性,只要在兼容范围内,应用程序就可以运行。
→容器正在运行Linux映像。

Linux镜像=文件系统/库
操作系统=文件系统/库+内核
每个容器(如Redhat、Suze、Ubuntu)都共享宿主操作系统的内核,并且相对于将内核包括在内进行虚拟化的虚拟服务器而言,容器的运行更轻量。

容器的生命周期

在主机中安装Docker守护程序,用于执行容器镜像、管理网络设置和进行整体容器管理。

安装Docker客户端,它在与守护进程通信时起到指导作用,在守护进程上执行构建、命令和运行命令等操作。

・注册表
用于存储Docker镜像的区域。
DockerHub是有名的注册表。
AWS提供了私有Docker镜像上传位置的服务,称为ECR(Elastic Container Registry)。

Docker客户端执行Run命令时,将其传递给守护进程。

守护进程根据需要从注册表中下载容器镜像,并将其作为容器来运行。
※这取决于build命令创建哪种类型的容器镜像。

集装箱的人生

以下是中文的翻译:

在DockerHub等社区中存在各种容器

将其pull到我的计算机(Docker客户端)

根据所需的操作进行编辑,并将其push到DockerHub等社区(注册表)

对Docker守护程序(主机)执行Run命令

Docker守护程序从注册表下载映像

运行容器