从Linux容器到Docker的演变
什么是Containers
Containers .然而,与容器相比,虚拟机的创建和维护成本很高,需要多个操作系统的副本来运行。
Docker从Linux容器的演变
Docker 它允许多个容器共享同一个底层镜像。这使得Docker比传统的虚拟化更加高效和轻量。
Docker还引入了容器镜像的概念,它是预先建立的、预先配置的应用程序及其依赖的镜像。这些镜像可以很容易地在不同的团队和环境中共享和重复使用,从而使应用的部署更加一致和可靠。Docker还增加了一个用于管理容器的命令行界面(CLI)和REST API,使开发者更容易将Docker整合到他们的工作流程中。此外,Docker推出了一个用于分享和发现图像的集中式中心,称为Docker Hub ,这使得开发人员更容易找到和使用剪贴画。
理解Linux容器
Linux 容器 .所有进程共享相同的内核空间,使得容器与虚拟机相比相当轻巧。
Docker的到来
虽然LXC提供了一个整洁而强大的用户空间界面,但它还不像用户那样友好,没有产生大规模的吸引力。Docker改变了游戏规则,它抽象了处理内核功能的大部分复杂性,并提供了一个简单的格式来容器化应用程序及其依赖关系。它还支持自动创建、版本管理和重复使用容器。Docker与不同LXC版本和发行版的副作用相隔离。
Docker比LXC的优势
Docker ,以提供其服务。这种架构允许核心组件独立发展和标准化。
Docker工作流程
一个典型的Docker工作流程包括将应用程序打包成一个镜像,发布到注册表,并作为容器运行,可能还有持久性。Docker的命令行界面和REST API使其很容易将这个工作流程整合到你的开发过程中。
Docker命令
要开始使用Docker,你首先需要在你的系统上安装它。一旦Docker安装完毕,你就可以开始使用它来运行容器。下面的命令将执行一个简单的 “Hello, World “容器 —
要列出所有正在运行的容器,使用命令–
$ docker ps
要停止一个正在运行的容器,使用命令–
$ docker stop <CONTAINER ID>
Docker架构
Docker有一个模块化的架构,依靠关键组件,如Docker守护者(dockerd)、containerd和runc,来提供其服务。这种架构允许核心组件独立发展和标准化。Docker守护进程(dockerd)是Docker的核心,包括监听API请求和管理Docker对象的Docker守护进程。它还提供了一个API接口和命令行接口,用于与Docker守护进程进行交互。containerd是另一个服务守护进程,帮助执行下载镜像和作为容器运行等任务。它遵循一个标准的API,像dockerd这样的客户端可以连接到它。Runc是与内核功能互动的组件,提供了一个创建命名空间和控制组的标准机制。它是对libcontainer的重新包装,以符合OCI的规范。本节介绍了Docker的核心组件以及它们在架构中的作用。
结论
Docker 自从它作为Linux容器的容器诞生以来,已经走过了很长的路。它已经成为容器化的事实上的标准,并大大简化了开发、部署和运行应用程序的过程。