Docker基礎和常用命令

Docker基礎和常用命令一 , Docker 簡介1.1,什么是 DockerDocker 使用 Google 公司推出的 Go 語言 進行開發實現,基于 Linux 內核的 cgroup,namespace,以及 OverlayFS 類的 Union FS 等技術,對進程進行封裝隔離 , 屬于操作系統層面的虛擬化技術 。由于隔離的進程獨立于宿主和其它的隔離的進程,因此也稱其為容器 。Docker容器與虛擬機類似,但二者在原理上不同 。容器是將操作系統層虛擬化,虛擬機則是虛擬化硬件,因此容器更具有便攜性、能更高效地利用服務器 。
專業名詞 Docker 有兩個意思:

  • 代指整個 Docker 項目 。
  • 代指 Docker 引擎 。
Docker 引擎(Docker Engine)是指一個服務端-客戶端結構的應用 , 主要有這些部分:Docker 守護進程、Docker Engine API(頁面存檔備份 , 存于互聯網檔案館)、Docker 客戶端 。
1.2 , Docker 與虛擬機的區別
  • 傳統虛擬機技術是虛擬出一套硬件后,在其上運行一個完整操作系統 , 在該系統上再運行所需應用進程 。
  • Docker 容器內的應用進程直接運行于宿主的內核,容器內沒有自己的內核,而且也沒有進行硬件虛擬 。因此容器要比傳統虛擬機更為輕便 。
特性Docker虛擬機啟動秒級分鐘級硬盤使用一般為 MB一般為 GB性能接近原生弱于系統支持量單機支持上千個容器一般幾十個1.3,Docker 架構
Docker基礎和常用命令

文章插圖
runc 是一個 Linux 命令行工具 , 用于根據 OCI容器運行時規范 創建和運行容器 。containerd 是一個守護程序,它管理容器生命周期,提供了在一個節點上執行容器和管理鏡像的最小功能集 。
1.4,為什么用 DockerDocker 作為一種新的虛擬化技術,跟傳統的虛擬化技術相比具有眾多的優勢:
  1. 更高效的利用系統資源:不需要進行硬件虛擬以及運行完整操作系統等額外開銷,Docker 對系統資源的利用率更高 。
  2. 更快速的啟動時間:Docker 容器應用直接運行于宿主內核 , 不需要啟動完整的操作系統 , 所以啟動時間可做到秒級的啟動時間 。
  3. 一致的運行環境:Docker 鏡像提供了除內核外完整的運行時環境 , 確保開發環境、測試環境、生產環境的一致性 。
  4. 持續交付和部署:開發人員可以通過 Dockerfile 來進行鏡像構建 , 并結合持續集成(Continuous Integration) 系統進行集成測試,而運維人員則可以直接在生產環境中快速部署該鏡像,甚至結合持續部署(Continuous Delivery/Deployment) 系統進行自動部署 。
  5. 更輕松的遷移:Docker 可以在很多平臺上運行,無論是物理機、虛擬機、公有云、私有云 , 甚至是筆記本,其運行結果是一致的 。
  6. 更輕松的維護和擴展 。
二 , Docker 基本概念Docker 三個基本概念:
  • 鏡像(Image)
  • 容器(Container)
  • 倉庫(Repository)
2.1,鏡像操作系統分為內核和用戶空間 。對于 Linux 而言,內核啟動后,會掛載 root 文件系統為其提供用戶空間支持 。而 Docker 鏡像(Image),就相當于是一個 root 文件系統 。比如官方鏡像 ubuntu:18.04 就包含了完整的一套 Ubuntu 18.04 最小系統的 root 文件系統 。
Docker 鏡像 是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名卷、環境變量、用戶等) 。鏡像 不包含 任何動態數據 , 其內容在構建之后也不會被改變 。
Docker 鏡像并非是像一個 ISO 那樣的打包文件 , 鏡像只是一個虛擬的概念,其實際體現并非由一個文件組成,而是由一組文件系統組成,或者說 , 由多層文件系統聯合組成 。其被設計為分層存儲的架構,鏡像構建時,會一層層構建,前一層是后一層的基礎 。每一層構建完就不會再發生改變,后一層上的任何改變只發生在自己這一層 。分層存儲的特征還使得鏡像的復用、定制變的更為容易 。甚至可以用之前構建好的鏡像作為基礎層 , 然后進一步添加新的層,以定制自己所需的內容,構建新的鏡像 。
2.2,容器鏡像(Image)和容器(Container)的關系,類似面向對象程序設計中的類和實例的關系 ??梢园?Docker容器(Container) 看做是一個簡易版的 Linux 環境(包括 root 用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序 。它可以被啟動、開始、停止、 刪除 。

推薦閱讀