還在使用虛擬機?30分鐘教你快速入門Docker

2021-03-01    分類: 網(wǎng)站建設(shè)

一、歡迎來到 Docker 世界

1. Docker 與虛擬化

在沒有 Docker 的時代,我們會使用硬件虛擬化(虛擬機)以提供隔離。這里,虛擬機通過在操作系統(tǒng)上建立了一個中間虛擬軟件層 Hypervisor ,并利用物理機器的資源虛擬出多個虛擬硬件環(huán)境來共享宿主機的資源,其中的應(yīng)用運行在虛擬機內(nèi)核上。但是,虛擬機對硬件的利用率存在瓶頸,因為虛擬機很難根據(jù)當(dāng)前業(yè)務(wù)量動態(tài)調(diào)整其占用的硬件資源,因此容器化技術(shù)得以流行。其中,Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上。



Docker 容器不使用硬件虛擬化,它的守護(hù)進(jìn)程是宿主機上的一個進(jìn)程,換句話說,應(yīng)用直接運行在宿主機內(nèi)核上。因為容器中運行的程序和計算機的操作系統(tǒng)之間沒有額外的中間層,沒有資源被冗余軟件的運行或虛擬硬件的模擬而浪費掉。

Docker 的優(yōu)勢不僅如此,我們來比較一番。

特性Docker虛擬機啟動速度秒級分鐘級交付/部署開發(fā)、測試、生產(chǎn)環(huán)境一致無成熟體系性能近似物理機性能損耗大體量極?。∕B)較大(GB)遷移/擴(kuò)展跨平臺,可復(fù)制較為復(fù)雜

2. 鏡像、容器和倉庫

Docker 由鏡像(Image)、容器(Container)、倉庫(Repository) 三部分組成。

Docker 的鏡像可以簡單的類比為電腦裝系統(tǒng)用的系統(tǒng)盤,包括操作系統(tǒng),以及必要的軟件。例如,一個鏡像可以包含一個完整的 centos 操作系統(tǒng)環(huán)境,并安裝了 Nginx 和 Tomcat 服務(wù)器。注意的是,鏡像是只讀的。這一點也很好理解,就像我們刻錄的系統(tǒng)盤其實也是可讀的。我們可以使用 docker images 來查看本地鏡像列表。

Docker 的容器可以簡單理解為提供了系統(tǒng)硬件環(huán)境,它是真正跑項目程序、消耗機器資源、提供服務(wù)的東西。例如,我們可以暫時把容器看作一個 Linux 的電腦,它可以直接運行。那么,容器是基于鏡像啟動的,并且每個容器都是相互隔離的。注意的是,容器在啟動的時候基于鏡像創(chuàng)建一層可寫層作為最上層。我們可以使用 docker ps-a 查看本地運行過的容器。

Docker 的倉庫用于存放鏡像。這一點,和 Git 非常類似。我們可以從中心倉庫下載鏡像,也可以從自建倉庫下載。同時,我們可以把制作好的鏡像 commit 到本地,然后 push 到遠(yuǎn)程倉庫。倉庫分為公開倉庫和私有倉庫,大的公開倉庫是官方倉庫 Dock Hub,國內(nèi)的公開倉庫也有很多選擇,例如阿里云等。


圖片來源互聯(lián)網(wǎng)

3. Docker 促使開發(fā)流程變更

筆者認(rèn)為,Docker 對開發(fā)流程的影響在于使環(huán)境標(biāo)準(zhǔn)化。例如,原來我們存在三個環(huán)境:開發(fā)(日常)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境。這里,我們對于每個環(huán)境都需要部署相同的軟件、腳本和運行程序,如圖所示。事實上,對于啟動腳本內(nèi)容都是一致的,但是沒有統(tǒng)一維護(hù),經(jīng)常會出問題。此外,對于運行程序而言,如果所依賴的底層運行環(huán)境不一致,也會造成困擾和異常。


現(xiàn)在,我們通過引入 Docker 之后,我們只需要維護(hù)一個 Docker 鏡像。換句話說,多套環(huán)境,一個鏡像,實現(xiàn)系統(tǒng)級別的一次構(gòu)建到處運行。此時,我們把運行腳本標(biāo)準(zhǔn)化了,把底層軟件鏡像化了,然后對于相同的將要部署的程序?qū)嵭袠?biāo)準(zhǔn)化部署。因此,Docker 為我們提供了一個標(biāo)準(zhǔn)化的運維模式,并固化運維步驟和流程。


通過這個流程的改進(jìn),我們更容易實現(xiàn) DevOps 的目標(biāo),因為我們的鏡像生成后可以跑在任何系統(tǒng),并快速部署。此外,使用 Docker 的很大動力是基于 Docker 實現(xiàn)彈性調(diào)度,以更充分地利用機器資源,節(jié)省成本。

哈哈,筆者在使用 Docker 過程中,還發(fā)現(xiàn)了一些很棒的收益點,例如我們發(fā)布回滾的時候只需要切換 TAG 并重啟即可。還比如,我們對環(huán)境升級,也只需要升級基礎(chǔ)鏡像,那么新構(gòu)建的應(yīng)用鏡像,自動會引用新的版本。(歡迎補充~~~)

二、從搭建 Web 服務(wù)器開始說起

1. 環(huán)境先行,安裝 Docker

現(xiàn)在,我們需要安裝以下步驟安裝 Docker。

  • 注冊帳號:在 https://hub.docker.com/ 注冊賬號。
  • 下載安裝

官方下載地址:(Mac):https://download.docker.com/mac/stable/Docker.dmg

阿里云下載地址(Mac):> http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/>

阿里云下載地址(Windows):> http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/

這里,雙擊剛剛下載的 Doker.dmg 安裝包進(jìn)行安裝。


安裝完成后啟動, Mac 頂部導(dǎo)航欄出現(xiàn)了一個圖標(biāo),通過菜單可以進(jìn)行 docker 配置和退出等操作。


官方指南:https://docs.docker.com/install/

阿里云指南(Linux):https://yq.aliyun.com/articles/110806?spm=5176.8351553.0.0.468b1991jdT95t

  • 設(shè)置加速服務(wù)

市面上有很多加速服務(wù)的提供商,如:DaoCloud,阿里云等。這里,筆者使用的是阿里云。(注意的是,筆者操作系統(tǒng)是 Mac,其他操作系列參見阿里云操作文檔)


右鍵點擊桌面頂欄的 docker 圖標(biāo),選擇 Preferences ,在 Daemon 標(biāo)簽(Docker 17.03 之前版本為 Advanced 標(biāo)簽)下的 Registry mirrors 列表中將

https://xxx.mirror.aliyuncs.com 加到"registry-mirrors"的數(shù)組里,點擊 Apply & Restart 按鈕,等待 Docker 重啟并應(yīng)用配置的鏡像加速器。

網(wǎng)站名稱:還在使用虛擬機?30分鐘教你快速入門Docker
網(wǎng)頁鏈接:http://bm7419.com/news/103573.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站制作網(wǎng)站改版、網(wǎng)站排名、動態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)