Docker介紹
1.Docker介紹
為什么要用Docker?,Docker的歷史
工作中的困擾
在研發工作中,想必都有這樣的場景
測試:生產環境發版后又出問題了。
運維:我是按照開發給的包部署的。
開發:我本地沒問題呀。
一款產品,開發和生產兩套環境,運維人員環境配置費時費力,且很容易出現問題。
出現問題后,開發人員和運維人員排查問題都是十分痛苦的,因為一個產品往往涉及到諸多環境,可能產生影響的因素實在太多。
尋求解決
要是能夠把代碼和環境一塊提供,運維人員拿來就直接運行,這個問題就迎刃而解了。
這就是所謂開發即運維,既能保證系統穩定性,也能提高部署效率。
為解決這一問題,Docker 橫空出世。
簡介

文檔:https://docs.docker.com/docker-for-windows/
命令:https://docs.docker.com/engine/reference/run/
Docker 是一個開源的應用容器引擎。
Docker 的思想來自于集裝箱,彼此之間隔離。
Docker 通過隔離機制,可以將服務器利用到極致。
Docker 容器完全使用沙箱機制,相互之間不會有任何接口。
結構

- 鏡像(image):Docker 鏡像好比一個模板,可以用來創建容器(container),一個鏡像可以創建多個容器。
- 容器(container):容器可以理解為一個微型的系統。
- 倉庫(repository):存放鏡像的地方。
底層原理
Docker 是一個 Client-Server 結構的系統。
Docker 的守護進程運行在主機上,通過 Socket 從客戶端訪問。
Docker Server 接受 Docker-Client 的指令。

和虛擬機的區別
Docker所使用的容器化技術本質上屬于虛擬化技術。
提到虛擬化技術,最有名的就是虛擬機技術。
虛擬機原理示意圖

它有以下明顯的缺點:
- 資源占用多。啟動虛擬機非常占內存,對電腦資源有不小的占用。
- 冗余步驟多。啟動虛擬機后,還需要進行一些步驟才能進入系統,效率比較低。
- 啟動很慢。由于虛擬機是虛擬化一整個系統,其啟動時間會比較緩慢,一般都需要幾分鐘。
容器化原理示意圖

它不是模擬的完整操作系統,而是基于操作系統封裝成了一個個小的運行環境。
區別
| 傳統虛擬機 | Docker | |
|---|---|---|
| 虛擬內容 | 硬件 + 完整的操作系統 + 軟件 | APP + LIB |
| 大小 | 笨重,通常幾個 G | 輕便幾個 M 或 KB |
| 啟動速度 | 慢,分鐘級 | 快,秒級 |
Docker 為什么比 VM 快

Docker 有著比 VM 更少的抽象層。
Docker 主要用的是宿主機的內核,而 VM 需要 Guest OS。
新建容器的時候,Docker 不需要像 VM 一樣重新加載一個操作系統內核,避免了引導的過程。
Docker的安裝
安裝
卸載老版本的docker
下載需要的安裝包
yum install -y yum-utils
設置鏡像的倉庫
設置阿里云的Docker鏡像倉庫
yum-config-manager
–add-repo
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum軟件包索引
yum makecache fast
安裝docker相關的配置
docker-ce 是社區版,docker-ee 企業版
yum install docker-ce docker-ce-cli containerd.io
啟動Docker
systemctl start docker #啟動
docker version #查看當前版本號,是否啟動成功
systemctl enable docker #設置開機自啟動

浙公網安備 33010602011771號