Docker命令行与守护进程的交互方法

 更新时间:2017年06月04日 09:37:07   作者:fundebug  
这篇文章主要介绍了Docker命令行与守护进程的交互方法的相关资料,需要的朋友可以参考下

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

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 API与Docker守护进程进行交互,例如创建容器,构建镜像等。

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仓库的细节与本文无关,因此不再赘述。

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

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

译者: Fundebug

相关文章

  • 基于docker的caffe环境搭建方法

    基于docker的caffe环境搭建方法

    这篇文章主要介绍了基于docker的caffe环境搭建方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • docker构建nginx alpine镜像实现步骤

    docker构建nginx alpine镜像实现步骤

    这篇文章主要介绍了docker构建nginx alpine镜像实现步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Docker版FFmpeg安装部署的详细步骤

    Docker版FFmpeg安装部署的详细步骤

    项目组开发过程用因为要使用音频格式转换功能,FFmpeg是常见的音视频处理工具,本文就来介绍一下Docker版FFmpeg安装部署的详细步骤,感兴趣的可以了解一下
    2023-10-10
  • docker安装clickhouse过程详解

    docker安装clickhouse过程详解

    这篇文章主要为大家介绍了docker安装clickhouse过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Docker基础学习之数据管理

    Docker基础学习之数据管理

    我们在使用Docker 的时候,会产生很多数据,比如web服务器啊,数据库之类的,有时我们还需要备份或复制这些数据,这就需要涉及到Docker的数据管理了。这篇文章就给大家详细的介绍Docker的数据管理,感兴趣的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • 使用docker搭建一套开发环境全家桶的详细教程

    使用docker搭建一套开发环境全家桶的详细教程

    这篇文章主要介绍了使用docker搭建一套开发环境全家桶,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 使用docker轻松几步打造个人专属图床的实现步骤

    使用docker轻松几步打造个人专属图床的实现步骤

    本文主要介绍了使用docker打造个人专属图床的实现步骤,可以快速搭建属于您自己的图床,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • docker network create命令的具体使用

    docker network create命令的具体使用

    docker network create命令用于创建一个新的网络连接,本文就来详细的介绍一下docker network create命令的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Docker 存储管理的几种方式

    Docker 存储管理的几种方式

    本文主要使用三种不同的方式将数据从Docker主机挂载到容器中,分别为卷(volumes),绑定挂载(bind mounts),临时文件系tmpfs,还介绍了数据卷容器、数据卷的备份与恢复,对Docker 存储管理相关知识感兴趣的朋友一起看看吧
    2022-07-07
  • Docker基础知识之Linux namespace图文详解

    Docker基础知识之Linux namespace图文详解

    这篇文章主要给大家介绍了关于Docker基础知识之Linux namespace的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03

最新评论