资讯专栏INFORMATION COLUMN

Docker命令行与守护进程如何交互?

willin / 2130人阅读

摘要:命令行是与守护进程进行交互的主要工具。感兴趣的话,你也可以开发一个,使用与守护进程进行交互就好了。命令行与守护进程如何交互从左至右理解上图最左侧是客户端,即命令行。而在与上运行时,守护进程事实上运行在虚拟机中。

译者按: Docker是典型的C/S架构,其守护进程(daemon)命令行(CLI)是通过REST API进行交互的。

原文: Understanding how the Docker Daemon and Docker CLI Work Together

译者: Fundebug

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习

Docker并非单体应用,它由多个组件构成。这篇博客将介绍Docker守护进程(daemon)Docker命令行(CLI)。事实上,当我们在谈论安装或使用Docker时,所指的其实就是Docker守护进程命令行

Docker架构图

解释一下上图中的元素:

Docker守护进程(docker daemon)是运行在你的操作系统上的一个服务。目前,它只能运行在Linux上,因为它依赖于一些Linux内核特性(比如Cgroup与Namespace)。 但是,也有一些特殊的办法让Docker运行在MacOS与Windows上(运行在Linux虚拟机中)。

Docker守护进程提供了REST API。许多工具(Docker命令行,Docker Compose等)都可以通过REST APIDocker守护进程进行交互,例如创建容器,构建镜像等。

Docker命令行(docker CLI)是与Docker守护进程进行交互的主要工具。

Docker是C/S架构

Docker是Client/Server架构。其中Docker守护进程是服务端,Docker命令行是众多客户端之一。事实上,还有很多第三方的Docker客户端。

对于各种流行的编程语言,它们都有对应的Docker客户端。感兴趣的话,你也可以开发一个,使用REST API与Docker守护进程进行交互就好了。

通过客户端,你可以管理Docker的各种元素,包括镜像、容器、网络以及数据卷。对于Docker感兴趣的话,你不妨看看 Dive Into Docker course。

Docker命令行与守护进程如何交互?

从左至右理解上图:

最左侧是Docker客户端,即Docker命令行。我们可以运行各种Docker命令,比如构建镜像(docker build),下载镜像(docker pull),运行容器(docker run)。Docker命令行可以安装在各种操作系统上,例如Windows,MacOS或者Linux服务器。

中间是Docker主机,Docker守护进程运行在上面。Docker命令行可以轻松地连接远程的Docker主机(给定IP和端口即可)。而在MacOS与Windows上"运行"Docker时,Docker守护进程事实上运行在Linux虚拟机中。这里关键点在于,Docker守护进程和命令行可以运行在不同的主机上。

最右侧是Docker仓库,它也是Docker生态系统中的一份子。它是我们下载、上传、存储以及分享Docker镜像的地方。Docker仓库的细节与本文无关,因此不再赘述。

版权声明:
转载时请注明作者Fundebug以及本文地址:
https://blog.fundebug.com/201...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26921.html

相关文章

  • Docker学习之路(四)守护式容器

    摘要:,,当前使用的容器名为,为。守护式容器没有交互式会话,适合运行应用程序和服务。大多数时候是需要以守护式来运行容器。与之前创建的容器相比,没有返回会话,只是返回了一个容器。删除容器运行中的容器无法删除,必须先停止。 windows 7, docker 1.3.2,当前使用的容器名为aoct,ID为614122c0aabb。 开启已经停止的容器 可以start + 容器名 $ sud...

    jay_tian 评论0 收藏0
  • 关于/var/run/docker.sock

    摘要:创建容器命令通过套接字发送到守护进程的接口,这个将会基于镜像创建容器并返回容器的。注意绑定套接字之后,容器的权限会很高,可以控制守护进程。 译者按: 这篇博客介绍了什么是/var/run/docker.sock,以及如何使用/var/run/docker.sock与Docker守护进程通信,并且提供了两个简单的示例。理解这些,我们就可以运行一些能够管理Docker的Docker容器,比...

    Bowman_han 评论0 收藏0
  • [Docker 官方文档] 理解 Docker

    摘要:将一个轻量级的容器虚拟化平台和一组标准工作流程工具进行集成,来帮助你方便地管理和部署应用。主要包括哪些组件主要包括两个组件开源的容器虚拟化平台用于分享和管理容器的软件即服务平台。 【编者的话】本文来自 Docker 的官方文档,详细介绍了 Docker 的体系结构、重要概念、内部工作机理等内容,推荐不了解 Docker 内部原理的同学阅读。 什么是 Docker? Docker 是...

    cncoder 评论0 收藏0
  • Docker入门(一)

    摘要:作者麦冬白鲸鱼是什么入门教程容器是与系统其他部分隔离开的一系列进程,运行这些进程所需的所有文件都由另一个镜像提供,从开发到测试再到生产的整个过程中,容器都具有可移植性和一致性。快速容器的启动和创建无需启动,可以实现秒级甚至毫秒级的启动。 作者: 麦冬 白鲸鱼 docker 是什么 Docker 入门教程 Docker容器是与系统其他部分隔离开的一系列进程,运行这些进程所需的所有文件都由...

    zebrayoung 评论0 收藏0
  • 01-Docker新手入门初见篇

    摘要:了解开源的容器平台用于分享管理容器的平台使用客户端服务器架构模式。守护进程会处理复杂繁重的任务,例如建立运行发布你的容器。客户端和守护进程之间通过或者进行通信。 Step1:了解Docker 开源的容器平台:Golang https://github.com/docker/dockerDocker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 -- D...

    oujie 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<