关于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守护程序从注册表下载映像
↓
运行容器