Docker 从外壳到核心,它是什么以及它是如何工作的
Docker 如何工作?
结论:
首先,要知道docker现在有一个基本的概念,容器是一个用于打包、运输和运行应用程序的有用工具,不需要特定的硬件或软件,但在开始之前,我们必须知道“虚拟机”(VM)和“容器”之间的区别
什么是容器和虚拟机?
首先,两者的目标是相同的,即将应用程序及其依赖项隔离在一个可以在任何地方运行的独立单元中
虚拟机:虚拟机是对真实计算机的模拟,其工作方式和执行程序与真实计算机类似。虚拟机使用虚拟机管理程序在物理机上运行。
虚拟机管理程序:是用于控制虚拟机运行的软件或硬件。虚拟机管理程序本身在物理计算机(称为“主机”)上运行。虚拟机管理程序提供所需的虚拟硬件资源,例如 RAM 和 CPU。它们将这些资源分配给各个虚拟机。因此,如果虚拟机正在运行繁重的应用程序,虚拟机管理程序将为其分配更多资源,并且虚拟机无法仅通过虚拟机管理程序直接访问硬件。
容器:容器和虚拟机之间的一个很大的区别是,容器与其他容器共享主机系统的内核,而不像虚拟机每个人都使用自己的操作系统,这意味着每个容器都有一个与其他容器资源分开的工作空间,并与其他容器共享主机内核。
Docker 组件有哪些?
- Docker 引擎
- Docker 客户端
- Docker 守护进程
- Dockerfile
- Docker 镜像
- 联合文件系统
- 卷
- Docker容器
- Docker 注册表
Docker 如何工作?
Docker 引擎:
Docker 运行所在的层。其主要职责是管理容器、镜像、构建等。
Docker 客户端:
它是用户与 Docker Daemon 通信的层,就像是 Docker 的 UI。
Docker 守护进程:
在主机中运行,执行Docker Client发送的命令——比如创建、运行和分发容器。
Dockerfile:
Docker 文件是我们编写创建 Docker 镜像的步骤或指令的地方。一些类型的指令:
- ENV 用于创建环境变量 > ENV API-URL www.example.com
- RUN 执行命令 > RUN apt-get -y update
- 将文件从 docker 工作区目录复制到另一个目录 > COPY . /usr/src/my-app
Docker 镜像:
Docker 镜像是一个包含多个层的文件。这些层由 Docker-file 中的指令创建。该镜像用于在 Docker 容器中执行代码。镜像是应用程序的完整可执行版本,当 Docker 用户启动镜像时,它可以成为该容器的一个或多个实例。镜像是只读的,Docker 会在镜像的只读文件系统上添加一个读写文件系统来创建容器。
联合文件系统:
它用于创建镜像,并将 Docker 镜像存储为一系列只读层。启动容器时,Docker 会获取只读镜像,并在其顶部添加一个读写层。如果容器正在对现有文件进行更改,则该文件会从基础只读层复制到应用更改的顶层读写层。
卷:
它们是默认 Union 文件系统之外的目录(或文件),作为主机文件系统上的常规目录和文件存在,用于保存数据并在容器之间共享数据。
Docker容器:
Docker 容器封装了应用程序软件,因此它包含应用程序运行所需的一切。它包括应用程序图标、操作系统、运行时、系统工具、系统库等。Docker
容器由 Docker 镜像创建。Docker 会创建一个网络接口,以便容器可以与本地主机通信,将可用的 IP 地址添加到容器,并在选定镜像后执行您指定的操作来运行应用程序。容器创建完成后,您可以在任何环境中运行它,而无需进行任何更改。
Docker 注册表:
它是一个服务器端应用程序,用于存储和分发 Docker 镜像。该镜像仓库是开源的,我们使用它来:
- 严格控制图像的存储位置
- 成为图像发布管道的所有者
- 将图像存储和部署紧密集成到您的内部开发工作流程中
结论:
Docker 是一项强大的技术,每个软件开发人员都应该学习和使用,因为它不再像以前那样对软件或硬件的特定要求进行限制。
如果有任何问题,请随时联系我或在评论中留言。
要查看类似的作品,这对每个开发人员或认知研究人员来说也非常重要,您可以通过在不同的社交网络上关注我来实现。👉
YouTube 、Twitter、LinkedIn 👈