Docker基礎 2.Docker安裝
Docker基礎
@Author:hanguixian
@Email:[email protected]
Docker文件:https://docs.docker.com/
Dcker中文文件:https://docs.docker-cn.com/
二.Docker安裝
1.前提條件
Docker.支援以下的CentOS版本:CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
前提條件
- 目前,CentOS僅發行版本中的核心支援Docker。
- Docker執行在CentOS 7上,要求系統為64位、系統核心版本為3.10以上。
- Docker執行在CentOS-6.5或更高的版本的CentOS上,要求系統為64位、系統核心版本為2.6.32-431或者更高版本。
檢視自己的核心
- uname命令用於列印當前系統相關資訊(核心版本號、硬體架構、主機名稱和作業系統型別等)。
uname -r cat /etc/redhat-release
2.docker的基本組成
- docker的架構圖
映象
Docker映象(lmage) 就是一個只讀的模板。映象可以用來建立Docker容器,一個映象可以建立很多容器
映象和容器的關係類似類與物件的關係:
Docker 面向物件 容器 物件 映象 類
容器
- Docker利用容器(Container) 獨立執行的一個或一組應用。容器是用映象建立的執行例項。
- 它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。
- 可以把容器看做是一個簡易版的Linux環境(包括root使用者許可權、程序空間、使用者空間和網路空間等)和執行在其中的應用程式。
- 容器的定義和映象幾乎一模一樣,也是一堆層的統一視角, 唯一區別在於容器的最上面那一層是可讀可寫的。
倉庫
- 倉庫(Repository) 是集中存放映象檔案的場所。
- 倉庫(Repository)和倉庫註冊伺服器(Registry) 是有區別的。倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。
倉庫分為公開倉庫(Public) 和私有倉庫(Private) 兩種形式。最大的公開倉庫是Docker Hub(https://hub.docker.com), 存放了數量龐大的映象供使用者下載。國內的公開倉庫包括阿里雲、網易雲等
總結
- 倉儲/映象/容器的概念:
- Docker本身是一個容器執行載體或稱之為管理引擎。我們把應用程式和配置依賴打包好形成一個可交付的執行環境,這個打包好的執行環境就似乎image映象檔案。只有通過這個映象檔案才能生成Docker容器。image檔案可以看作是容器的模板。Docker根據image檔案生成容器的例項。同一個image檔案,可以生成多個同時執行的容器例項。
- image檔案生成的容器例項,本身也是一個檔案,稱為映象檔案。
- 一個容器執行一種服務,當我們需要的時候,就可以通過docker客戶端建立一個對應的執行例項,也就是我們的容器
- 至於倉儲,就是放了一堆映象的地方,我們可以把映象釋出到倉儲中,需要的時候從倉儲中拉下來就可以了。
- 倉儲/映象/容器的概念:
3.安裝步驟
CentOS6
yum install -y epel-release
(Docker使用EPEL釋出, RHEL系的OS首先要確保持有EPEL倉庫,否則先檢査〇S的版本,然後安裝相應的EPEL包。)yum install -y docker-io
(安裝)- 安裝後的配置檔案:
/etc/sysconfig/docker
- 啟動Docker後臺服務:
service docker start
docker version
驗證
CentOS7
參考官方文件:https://docs.docker.com/install/linux/docker-ce/centos/
1.安裝所需的包。
yum-utils
提供了yum-config-manager
效用,並device-mapper-persistent-data
和lvm2
由需要devicemapper
儲存驅動程式。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 2.使用以下命令設定穩定儲存庫。即使您還想從邊緣或測試儲存庫安裝構建,您始終需要穩定的儲存 庫。(大坑:改成阿里雲或網易雲)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 3.安裝最新版本的Docker CE
sudo yum install docker-ce
- 啟動 docker
systemctl start docker
docker
通過執行hello-world
映象驗證是否已正確安裝。
sudo docker run hello-world
4.使用和優化
run: docker run xxx
阿里雲加速:
- 網易雲加速:
5.底層原理
Docker如何執行
- Docker是一個Client-Server結構的系統,Docker守護 程序執行在主機上,然後通過Socket連線從客戶端訪問,守護程序從客戶端接受命令並管理執行在主機上的容器。容器,是一個執行時環境,就是我們前面說到的集裝箱。
- Docker是一個Client-Server結構的系統,Docker守護 程序執行在主機上,然後通過Socket連線從客戶端訪問,守護程序從客戶端接受命令並管理執行在主機上的容器。容器,是一個執行時環境,就是我們前面說到的集裝箱。
Docker比VM塊
(1)docker有著比虛擬機器更少的抽象層。由亍docker不需要Hypervisor實現硬體資源虛擬化,執行在docker容器上的程式直接使用的都是實際物理機的硬體資源。因此在CPU、記憶體利用率上docker將會在效率上有明顯優勢。
(2)docker利用的是宿主機的核心,而不需要Guest OS。因此,當新建一個容器時,docker不需要和虛擬機器一樣重新載入一個作業系統核心。仍而避免引尋、載入作業系統核心返個比較費時費資源的過程,當新建一個虛擬機器時,虛擬機器軟體需要載入GuestOS,返個新建過程是分鐘級別的。而docker由於直接利用宿主機的作業系統,則省略了返個過程,因此新建一個docker容器只需要幾秒鐘。
# Docker容器 虛擬機器(VM) 作業系統 與宿主機共享0S 宿主機OS上執行虛擬機器OS 儲存大小 映象小,便於儲存與傳輸 映象龐大(vmdk、vdi等) 執行效能 幾乎無額外效能損失 作業系統額外的CPU、記憶體消耗 移植性 輕便、靈活,適應於Linux 笨重,與虛擬化技術耦合度高 硬體親和性 面向軟體開發者 面向硬體運維者