译者按: Docker是典型的C/S架构,其守护进程(daemon)与命令行(CLI)是经过REST API进行交互的。docker
原文: Understanding how the Docker Daemon and Docker CLI Work Together编程
译者: Fundebug服务器
为了保证可读性,本文采用意译而非直译。另外,本文版权归原做者全部,翻译仅用于学习。网络
Docker并不是单体应用,它由多个组件构成。这篇博客将介绍Docker守护进程(daemon)与Docker命令行(CLI)。事实上,当咱们在谈论安装或使用Docker时,所指的其实就是Docker守护进程与命令行。架构
Docker守护进程(docker daemon)是运行在你的操做系统上的一个服务。目前,它只能运行在Linux上,由于它依赖于一些Linux内核特性(好比Cgroup与Namespace)。 可是,也有一些特殊的办法让Docker运行在MacOS与Windows上(运行在Linux虚拟机中)。编程语言
Docker守护进程提供了REST API。许多工具(Docker命令行,Docker Compose等)均可以经过REST API与Docker守护进程进行交互,例如建立容器,构建镜像等。工具
Docker命令行(docker CLI)是与Docker守护进程进行交互的主要工具。学习
Docker是Client/Server架构。其中Docker守护进程是服务端,Docker命令行是众多客户端之一。事实上,还有不少第三方的Docker客户端。ui
对于各类流行的编程语言,它们都有对应的Docker客户端。感兴趣的话,你也能够开发一个,使用REST API与Docker守护进程进行交互就行了。spa
经过客户端,你能够管理Docker的各类元素,包括镜像、容器、网络以及数据卷。对于Docker感兴趣的话,你不妨看看 Dive Into Docker course。
最左侧是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...