docker容器的概念 | docker容器和虚拟机的区别 13
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快速入门教程系列的一部分您也可以查看以了解更多信息 –
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!