首页 > 自考资讯 > 高考百科

一文弄清Docker(docker通俗易懂)

小条 2024-10-14

Docker简介

Docker 是一个基于Linux 容器的开源项目。使用命名空间和控制组等Linux 内核功能在操作系统之上创建容器。容器并不新鲜。谷歌多年来一直在使用自己的容器技术。其他Linux 容器技术包括Solaris Zones、BSD Jails 和LXC。这些已经存在很多年了。

Docker的优点

1. 易于使用:Docker 使任何人(包括开发人员、系统管理员和架构师)都可以轻松地利用容器来快速构建和测试可移植应用程序。这使得任何人都可以在笔记本电脑上打包应用程序,并无需修改即可在公共云、私有云甚至裸机上运行它们。我们的口号是“构建一次,随处运行”。

2.速度:Docker容器极其轻量且快速。容器只是在内核之上运行的沙箱环境,因此它们使用更少的资源。 Docker 容器可以在几秒钟内创建并运行,但虚拟机可能需要更长的时间,因为它们每次都必须启动一个完整的虚拟操作系统。

3. Docker Hub:Docker用户也受益于不断发展的Docker Hub生态系统。 Docker Hub 可以被认为是“Docker 镜像的应用商店”。 Docker Hub 拥有数万个由社区创建的即用型公共镜像。您可以轻松找到适合您需要的图像,下载并稍加修改即可使用。

4. 模块化和可扩展性:Docker 允许您轻松地将应用程序的功能分解到单独的容器中。例如,您可以在一个容器中运行Postgres 数据库,在另一个容器中运行Redis 服务器,在另一个容器中运行Node.js 应用程序。 Docker 可以轻松地将这些容器链接在一起以创建应用程序,从而使将来可以轻松地单独扩展和更新组件。

Docker 基本概念

9fa7cb64bd6d4b6e9cc52c87b39671fd~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1729496290&x-signature=CljXvCBPr1EAdJtUQaEefTTS6VI%3DDocker 引擎

Docker Engine是Docker运行的层。它是一个轻量级运行时和工具,用于管理容器、图像、构建等。它在Linux 系统上本机运行,包括:

1. 在主机上运行的Docker 守护进程。

2. Docker 客户端随后与Docker 守护进程通信以执行命令。

3. 用于与Docker 守护进程远程交互的REST API。

Docker客户端

Docker 客户端是Docker 最终用户与之通信的对象。将其视为Docker 的UI。例如,如果你做这样的事情.

它与Docker 客户端通信,后者将指令传递给Docker 守护进程。

码头守护进程

Docker 守护进程实际上执行发送到Docker 客户端的命令,包括构建、运行和分发容器。 Docker 守护进程在您的主机上运行,但您不以用户身份直接与其交互。 Docker 客户端也可以在主机上运行,但这不是必需的。它可以运行在各种机器上,并与主机上运行的Docker 守护进程进行通信。

Dockerfile

Dockerfile 是您编写构建Docker 映像的说明的地方。这些说明是:

RUN apt-get y install some-package:安装包EXPOSE 8000:暴露端口ENV ANT_HOME /usr/local/apache-ant 传递环境变量等。设置Dockerfile 后,您可以使用docker build 命令从Dockerfile 构建映像。这是一个Dockerfile 示例:

Dockerfile 示例

Docker镜像

镜像是根据Dockerfile 中编写的一组指令构建的只读模板。该映像定义了打包的应用程序及其依赖项的外观,以及*哪些进程将在启动时运行。

c. MNT:为容器提供系统上“安装”内容的独特视图。因此,不同挂载命名空间中的进程具有不同的文件系统层次结构视图。

d. UTS:UTS 代表UNIX 分时系统。这允许进程识别系统标识符(即主机名、域名等)。 UTS 允许容器拥有自己的主机名和NIS 域名,独立于其他容器或主机系统。

e. IPC:IPC 代表进程间通信。 IPC 命名空间负责分隔每个容器内运行的进程之间的IPC 资源。

F. 用户:该命名空间用于分隔每个容器内的用户。它的功能是允许容器具有与主机系统不同的uid(用户ID)和gid(组ID)范围视图。因此,进程的uid 和gid 在用户命名空间内外可能不同。这允许进程在容器外部拥有非特权用户,而无需牺牲容器内部的根权限。

Docker 一起使用这些命名空间来隔离并开始创建容器。下一个功能称为控制组。

联合文件系统

控制组(也称为cgroup)是一项Linux 内核功能,用于隔离、确定优先级并说明一组进程的资源使用情况(CPU、内存、磁盘I/O、网络等)。从这个意义上说,cgroup 确保Docker 容器仅使用它们需要的资源,并且您可以选择对容器可以使用的资源设置限制。 Cgroup 还确保单个容器不会耗尽任何这些资源并导致整个系统崩溃。

最后,联合文件系统是Docker 使用的另一个功能。

Docker容器

版权声明:本文为网络转载,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢