首頁 >運維 >Docker >docker引擎是什麼

docker引擎是什麼

青灯夜游
青灯夜游原創
2021-12-30 16:42:292867瀏覽

Docker引擎是用來運作和管理容器的核心軟體,其主要的元件構成有:Docker客戶端(Docker Client)、Docker守護程式(Docker deamon)、containerd和runc。

docker引擎是什麼

本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。

1. Docker引擎簡介

  • Docker引擎是用來運行和管理容器的核心軟體

  • Docker 引擎由許多專用的工具協同工作,從而可以創建和運行容器,例如API、執行驅動、運行時、shim 進程等。

  • Docker引擎主要的元件構成:Docker客戶端(Docker Client), Docker守護程式(Docker deamon),containerd以及runc。

2. Docker引擎詳解

  • Docker首次發佈時,由兩個核心元件構成:LXC和Docker daemon。
  • Docker daemon是單一的二進位文件,包含諸如Docker客戶端,Docker API,容器運行時,鏡像建置等。
  • LXC提供了命名空間和控制群組(CGroup)等基礎工具的操作能力,它們是基於Linux核心的容器虛擬化技術。在 Docker 0.9 版本中,Libcontainer 取代 LXC 成為預設的執行驅動程式。

2.1. Docker daemon

  • #Docker daemon整體性帶來的越來越多的問題:
    • 難於變更
    • 運行越來越慢
    • 這並非生態公司所期望的
  • #daemon使用一種CRUD風格的API,透過gRPC與containerd進行通訊

2.2. runc

  • #runc實質上是一個輕量級的,針對Libcontainer進行了包裝的命令列互動工具。
  • runc作用:建立容器

2.3. containerd

  • 主要功能:容器的生命週期管理–start|stop |pause|rm…

2.4. shim

  • shim是實作無daemon的容器不可或缺的工具,runc每次都建立新容器,都會fork一個新的runc實例,一旦容器建立完畢,對應的runc程序就會退出。
  • 一旦父進程runc退出,相關聯的container-shim進程就會成為容器的父進程
  • shim的部分職責:
    • 保持所有STDIN和STDOUT流是開啟狀態,從而當daemon重啟的時候,容器不會因為管道的關閉而終止。
    • 將容器的退出狀態回饋給daemon。

2.5. 在Linux上的實作

  • dockerd(Docker daemon), docker-containerd(containerd), docker-containerd-shim(shim)和docker-runc(runc)都是由單獨的二進位實作。

2.6. daemon的作用

  • #主要功能:鏡像管理,鏡像構建,REST API, 身份驗證,安全,核心網路以及編排。

推薦學習:《docker影片教學

以上是docker引擎是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn