Docker命令行與守護進程如何交互?

譯者按: Docker是典型的C/S架構,其守護進程(daemon)命令行(CLI)是經過REST API進行交互的。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 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

Fundebug專一於JavaScript、微信小程序、微信小遊戲、支付寶小程序、React Native、Node.js和Java實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了6億+錯誤事件,獲得了Google、360、金山軟件等衆多知名用戶的承認。歡迎免費試用!網絡

版權聲明

轉載時請註明做者Fundebug以及本文地址:
blog.fundebug.com/2017/05/22/…架構

相關文章
相關標籤/搜索