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守護程序進行互動,例如建立容器,構建映象ktrxjunr等。
docker命令列(docker cli)是與docker守護程序進行互動的主要工具。
docker是c/s架構
docker是client/server架構。其中docker守護程序是服務端,docker命令列是眾多客戶端之一。事實上,還有很多第三方的客戶端。
對於各種流行的程式語言,它們都有對應的docker客戶端。感興趣的話,你也可以開發乙個,使用rest api與docker守護程序進行互動就好了。
通過客戶端,你可以管理docker的各種元素,包括映象、容器、網路以及資料卷。對於docker感興趣的話,你不妨看看 dive into docker cour程式設計客棧se。
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 toge程式設計客棧ther
譯者: fundebug
本文標題: docker命令列與守護程序的互動方法
本文位址:
Docker命令列表
docker run options image command arg.docker start options container container.docker kill options container container.t日誌新增時間戳 f跟蹤日誌變動 tail n all從倒數n條...
Docker命令列表
docker run options image command arg.docker start options container container.docker kill options container container.t日誌新增時間戳 f跟蹤日誌變動 tail n all從倒數n條...
Docker命令列安裝Shipyard
curl ssl bash s 自動部署指令碼中,包括以下引數 discovery 集群系統採用swarm進行採集和管理 在節點管理中可以使用 node image 映象,預設使用shipyard的映象 prefix 容器名字的字首 shipyard args 容器的常用引數 tls cert pa...