docker容器的概念 | docker容器和虚拟机的区别 13

作者 : 慕源网 本文共2595个字,预计阅读时间需要7分钟 发布时间: 2021-12-12 共403人阅读

docker容器的概念

Docker 容器是“一个标准化的软件单元”。简单来说,Docker容器就是一个可写的镜像(Docker Image),所以要了解容器,我们需要先了解什么是Docker镜像。Docker 容器映像是一个应用程序包,其中包含其所有库和依赖项,因此我们可以使用此映像快速可靠地运行容器,而不管基础架构如何。如果您能够在机器上安装 Docker 引擎,则意味着您也可以毫无问题地运行容器。我们可以将 Ubuntu、CentOS 甚至 Windows Server Core 作为 Docker 容器运行。我们可以使用基础镜像创建我们自己的容器镜像。

为什么要使用 Docker 容器?

便携: Docker 容器是容器化应用程序的行业标准,因此它可以在任何地方运行。如果您有一个在 Windows 上运行的容器化应用程序,但由于业务需求,您必须在 Linux 上运行该应用程序,您也可以轻松地在 Linux 上运行它,而无需修改代码。

轻量级: Docker 容器使用主机操作系统内核与存储、网卡等硬件进行通信。这就是为什么 Docker 容器不需要为每个应用程序配备一个成熟的操作系统。它的启动速度比 VM 快,因为它是轻量级的。

更高的效率: Docker 容器帮助我们更轻松、更快速地部署、更新和扩展我们的应用程序。

平台独立:我们可以在 Linux、Windows 或任何公共云平台(如 Azure、AWS、GCP、DigitalOcean 等)上运行 Docker 容器。

安全: Docker 容器是安全的,因为它在作为容器运行的应用程序之间提供了很好的隔离。每个容器都有自己的文件系统、命名空间和组,因此如果任何应用程序受到任何入侵或恶意软件的攻击,它只会影响该单个容器。

成本效益:–  Docker 容器也具有成本效益,因为我们需要更少的服务器来运行我们的应用程序,间接节省了操作系统的许可成本。

Docker 容器无处不在

今天的 Docker 容器无处不在,从 Linux 操作系统到数据中心。随着 Docker 容器在 Linux 世界的巨大成功,微软还与 Docker 合作,将容器及其功能引入 Windows Server。公共云提供商还提供容器即服务,例如 AWS 的 EKS、Azure 的 AKS 和谷歌的 GKE。我们甚至可以在 Raspberry Pi 上运行 Docker。无服务器计算也得到 Docker 容器的支持。

docker容器和虚拟机的区别

Docker 容器 虚拟机
容器虚拟化操作系统。 VM 虚拟化硬件。
容器提供应用层抽象。 VM 在管理程序环境中运行。
容器共享相同的操作系统内核

正在运行。

虚拟机内部有自己的操作系统,包括二进制文件、

库和应用程序文件。

容器使用的空间比虚拟机少,因此它们可以

在更少的虚拟机或物理服务器上处理更多的应用程序。

VM 在成熟的操作系统上运行,因此这些 VM 占用的空间以 GB 为单位
容器启动太快。它可以在很少的时间开始

秒。

虚拟机启动缓慢。启动需要几分钟时间。

Docker 容器如何工作?

如前所述,每个 Docker 容器都有自己的文件系统、命名空间和 cgroup。这三个特性帮助我们理解在 Docker 容器上工作。

  • 文件系统: –  Docker 容器使用可堆叠的文件系统,这意味着不同分支中的文件和目录可以重叠以形成单个文件系统。它帮助我们避免每次部署容器时重复数据。
  • 命名空间: – 每个容器都有自己的多个命名空间,每个命名空间都有不同类型的操作系统信息。例如,MNT 命名空间包含有关容器可以使用的已挂载文件系统的信息;类似地,USER 命名空间包含有关容器用户和组 ID 的信息。
  • 控制组: – 控制组负责管理容器的资源使用情况,例如 CPU、内存、磁盘 I/O 和网络。我们还可以使用控制组来限制使用限制。

我们需要一个 Docker 镜像来运行容器,并且镜像可以存储在存储库中。我们有一个公共存储库,即 hub.docker.comon,可以免费获得官方镜像。我们可以将镜像拉入或推送到此存储库。我们还可以在 hub.docker.com 上创建一个私有存储库,或者实现一个仅在组织内可用的全新私有仓库。

Docker 运行 Hello-World

以下命令用于创建一个简单的 hello-world 容器: –

当我们在终端(Docker CLI)上运行上述命令时,Docker CLI 会调用 Docker 守护进程的 API;如果本地不存在 Docker 映像,Docker 守护程序首先在主机上本地搜索“hello-world”映像,它会转到 hub.docker.com 并在那里搜索。如果 Docker 守护进程在集线器上找到提到的镜像,它会在本地下载该镜像,一旦下载,Docker 守护进程就会使用该镜像启动容器。下面的快照是上述命令的输出: –

一些与 Docker 容器相关的有用命令:

1. docker container –help

上面的命令用于获取我们可以与容器一起使用的命令列表。如果您忘记任何命令,帮助真的很有帮助。以下是上述命令的快照: –

如果我们需要更多关于进一步命令的帮助,比如该命令之后的内容,我们可以再次使用 help 来获得进一步的帮助。让我们通过一个例子来理解它。如果您不确定命令“run”后会发生什么,那么您可以运行如下命令以获得更多帮助:-

2. docker container run –help

这是上述命令的快照: –

我们可以将许多选项与 Docker 运行命令一起使用。

3. docker container ls

上面的命令用于列出所有正在运行的容器。我们还可以使用“docker ps”来列出所有正在运行的容器。

我们必须使用 -a 标志来列出系统上存在的所有容器。

4. docker container inspect <container_id>or<container_name>

上述命令将以 JSON 格式显示容器的完整详细信息。以下是上述命令的示例输出;你会得到比下面显示的更多的细节: –

结论

Docker 容器通过与 CI/CD 管道集成,在部署、更新和扩展任何应用程序方面提供了敏捷性。我们甚至可以将遗留应用程序作为容器运行。Docker 容器轻巧、便携且安全。结合使用 Docker 容器和虚拟机,我们可以获得极大的灵活性。

推荐文章

这是 Docker 容器指南。在这里,我们讨论 docker容器的概念,我们为什么要使用它,docker容器和虚拟机的区别,以及一些有用的命令。

本文是docker快速入门教程系列的一部分您也可以查看以了解更多信息 –

 


慕源网 » docker容器的概念 | docker容器和虚拟机的区别 13

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录