Docker (一)簡介與安裝

2021-09-10 03:56:16 字數 3177 閱讀 9562

一、基礎概念

docker 是 paas 提供商 dotcloud 開源的乙個基於 lxc 的高階容器引擎,是乙個新興的輕量級虛擬化技術,其主要動力是在不同的機器上創造無差別的應用執行環境。

docker是以docker容器為資源分割和排程的基本單位,封裝整個軟體執行時環境,為開發者和系統管理員設計的,用於構建、發布和執行分布式應用的平台。是乙個跨平台、可移植且簡單易用的容器解決方案,其源**託管在 github 上,基於go語言並遵從apache2.0協議開源。

docker 使用客戶端-伺服器 (c/s) 架構模式,docker容器本質上是宿主機上的程序,可在容器內快速自動化地部署應用,並通過作業系統核心技術(namespace、cgroups)為容器提供資源隔離和與安全保障(通過namespace實現資源隔離,通過cgroups 實現資源限制,通過寫時復值機制(copy-on-write)實現了高效的檔案操作)。其中,有六個namespace:mount檔案系統隔離、網路隔離network、主機名隔離uts、程序間通訊隔離ipc、使用者和使用者組隔離user、進行id隔離pid。cgroups可以限制、記錄任務組所使用的物理資源(包括cpu/memory/io等),為容器實現虛擬化提供基本保證。

二、基本元件

實際應用過程中,docker 容器通過 docker 映象來建立,容器與映象的關係類似於物件導向程式設計中的物件與類。

包含三部分:客戶端、伺服器和映象倉庫,如下圖所示:

最核心的是 docker daemon我們稱之為docker守護程序,也就是server端,server端可以部署在遠端,也可以部署在本地,因為server端與客戶端(docker client)是通過rest api進行通訊。圖中各元件作用如下:

docker engine:指的是通常意義上的docker容器,主要用來接收和處理docker命令請求。其架構為:

docker machine則主要用來管理 docker化的host (安裝了docker engine的主機);

docker client客戶端->向docker伺服器程序發起請求,如:建立、停止、銷毀容器等操作;

docker server伺服器程序->處理所有docker的請求,管理所有容器;

docker registry映象倉庫->映象存放的**倉庫,可看作是存放二進位制的scm;

三、虛擬機器與docker的區別

1. 底層架構

2.基本屬性

四、docker安裝

docker分為社群版和企業版,且支援不同的作業系統平台,不同系統的軟體依賴不一樣,使用者安裝時需選擇符合當前作業系統的版本。

安裝docker具有三種方式,(1)設定docker映象源(2)手動rpm(3)編寫執行指令碼;一般選擇設定第一種方式,但是若所在範圍不能聯網,則建議手動rmp包安裝。

方一:使用yum在centos上安裝

1. 驗證當前centos系統是否為64位,核心版本是否高於3.10;  

命令:uname -r
2. 移除舊版本

yum remove docker docker-client docker-common \       

docker-client-latest docker-latest docker-logrotate docker-engine \

docker-latest-logrotate docker-selinux docker-engine-selinux

換行需在每行末尾加斜槓\。

3. 安裝一些必要的系統工具:

4. 新增軟體源資訊(即yum獲取源路徑)

yum-config-manager --add-repo  / docker-ce/linux/centos/docker-ce.repo
5. 更新快取:sudo yum makecache fast

6.安裝docker-ce:sudo yum -y install docker-ce

7.啟動docker後台服務:sudo systemctl start docker

8.測試執行hello-world:docker run hello-world

五、docker安裝目錄

安裝目錄,安裝完之後,會生成幾個資料夾?

pull映象存放在哪?docker/container/***下,***的具體資訊在docker/image/overlay/ repositories.json裡。

docker 的映象與容器都儲存在 /var/lib/docker 下面。

不同作業系統具有不同儲存方式,其中,redhat版本,在該路徑下,檔案目錄如下:

├── containers

│ │ ├── data

│ │ └── metadata

│ └── metadata

│ ├── base

│ ├── deviceset-metadata

│ └── transaction-metadata

├── graph

├── linkgraph.db

├── tmp

├── trust

└── volumes

Docker簡介與安裝(一)

docker 是 docker.inc 公司開源的乙個基於 lxc技術之上構建的container容器引擎,源 託管在 github 上,基於go語言並遵從apache2.0協議開源。docker是通過核心虛擬化技術 namespaces及cgroups等 來提供容器的資源隔離與安全保障等。由於do...

Docker簡介與安裝

安裝 docker是乙個開源專案,基於google的go語言實現,專案 在上github進行維護。docker是一款針對程式開發人員和系統管理員來開發 部署 執行應用的一款虛擬化平台。docker 可以讓你像使用貨櫃一樣快速的組合成應用,並且可以像運輸標準貨櫃一樣,盡可能的遮蔽 層面的差異。dock...

docker安裝 簡介與dockerfile

docker可以粗糙地理解為輕量級的虛擬機器。每個容器內執行著乙個應用,不同的容器相互隔離,容器之間也可以通過網路互相通訊。容器的建立和停止十分快速,幾乎跟建立和終止原生應用一致 另外,容器自身對系統資源的額外需求也很有限,遠遠低於傳統虛擬機器。很多時候,甚至直接把容器當作應用本身也沒有任何問題。d...