所屬專欄: docker學習筆記
docker 基於linux 的多項開源技術提供了高效、敏捷和輕量級的容器方案,並且支援在多種主流雲平台(paas) 和本地系統上部署。可以說docker為應用的開發和部署提供了"一站式"的解決方案。
docker引擎的基礎是linux容器(linux containers , lxc)技術. 在lxc的基礎上,docker進一步優化了容器的使用體驗。docker提供了各種容器管理工具(如分發、版本、移植等)讓使用者無需關注底層的操作,可以簡單明瞭的管理和使用容器。使用者操作docker容器就像操作乙個輕量級的虛擬機器那樣簡單.
作為一種輕量級的虛擬化方式,docker在執行應用上跟傳統的虛擬機器方式相比具有顯著優勢:
docker容器除了執行其中的應用之外,基本不消耗額外的系統資源,保證應有效能的同時,儘量減少系統開銷。傳統虛擬機器方式執行n個不同的應用就要啟動n個虛擬機器(每個虛擬機器需要單獨分配獨佔的記憶體、磁碟等資源),而docker只需要啟動n個隔離的容器,並將應用放到容器內即可。
下表總結了使用docker容器技術與傳統虛擬機器技術的特性比較。
下圖比較了docker和常見虛擬機器方式的不同之處。
傳統方式是在硬體層面實現虛擬化,需要有額外的虛擬機器管理應用和虛擬機器作業系統層。
docker容器是在作業系統層面實現虛擬化,直接復用本地主機的作業系統,因此更加輕量級.
docker引擎是乙個客戶端--伺服器應用,由如下主要元件組成:
cli使用docker的rest api 來和docker的守護程序互動,通過指令碼或直接的cli命令。
守護程序(dameon)建立和管理docker物件(objects).docker物件包括映象(images)、容器(containers)、網路(networks)、資料卷(data volumes)等等.
注:docker通過開源的apache 2.0 許可認證.
docker使用客戶端-伺服器(client-server)架構. docker client 告訴docker daemon 建立、執行、和分發你你的docker容器. docker client和daemon可以執行在同乙個系統中,或者可以使用docker client 和遠端的docker daemon 取得聯絡。docker客服端和docker守護程序之間通過sockets 或者rest api 互動.
1、docker守護程序
如上圖所示,docker守護程序執行在一台主機上,使用者不直接和守護程序互動,而是通過docker客戶端互動.
2、docker客戶端
docker客戶端,實際是docker的二進位制程式,是主要的使用者與docker的互動方式。它接收使用者指令,並與背後的docker守護程序互動,如此來回往復.
3、docker 內部(inside)
要理解docker內部情況,你需要知道如下三種資源:
3.1、docker映象
docker映象類似於虛擬機器映象,可以將它理解為乙個面向docker引擎的唯讀模板,包含了檔案系統。
例如:乙個映象可以只包含乙個完整的ubuntu作業系統環境,可以把它稱為乙個ubuntu映象。映象也可以安裝了apache應用程式(或使用者需要的其他軟體),可以把它稱為乙個apache映象。
3.2、docker容器
docker容器類似於乙個輕量級的沙箱,docker利用容器來執行和隔離應用。
容器是從映象建立的應用執行例項,可以將其啟動、開始、停止、刪除,而這些容器都是互相隔離、互不可見的。
讀者可以把容器看做乙個簡易版的linux系統環境(這包括root使用者許可權、程序空間、使用者空間和網路空間等),以及執行在其中的應用程式打包而成的應有盒子。
映象自身是唯讀的。容器從映象啟動的時候,docker會在映象的最上層建立乙個可寫層,映象本身將保持不變.
3.3、註冊伺服器(registry)
docker註冊伺服器是存放倉庫的地方,其上往往存放過個倉庫。每個倉庫集中存放某乙個類映象,往往包括多個映象檔案,可以通過不同的標籤(tag)來進行區分。根據所儲存的映象公開與否,docker倉庫可以分為公開(public)倉庫和私有(private)倉庫兩種形式.
圖--倉庫和註冊伺服器
當使用者建立了自己的映象之後就可以使用push命令將它上傳到指定的公有或者私有倉庫。這樣使用者下次使用者下次在另一台機器上使用該竟像時,只需將其從倉庫上pull下來就可以了。
docker學習 centos安裝docker
1.更新yum源 yum update2.安裝依賴 3.設定yum源 使用ustc,也可以使用阿里雲的 yum config manager add repo4.安裝docker yum install y docker ce通過docker v檢視,如果檢視到版本號,說明安裝成功 5.設定ustc...
Docker學習筆記2
一 基礎命令 1.docker info 檢視docker資訊 2.docker version 檢視docekr的版本資訊 3.service docker start 開啟docker服務 3.docker search 從docker hub中查詢映象 選項說明 s 列出收藏數不少於指定值的映...
Docker學習筆記2 Docker 概述
docker 基於linux 的多項開源技術提供了高效 敏捷和輕量級的容器方案,並且支援在多種主流雲平台 paas 和本地系統上部署。可以說docker為應用的開發和部署提供了 一站式 的解決方案。docker引擎的基礎是linux容器 linux containers lxc 技術.在lxc的基礎...