最近開始自學docker,決定把自己的學習進度分享給大家,每天一篇希望能幫助docker的初學者。大家積極留言哦,輸出決定輸入!預計20次完成docker的講解。
1.什麼是docker
Docker 是一個開源專案,誕生於 2013 年初,最初是 dotCloud 公司內部的一個業餘專案。它基於 Google 公司推出的 Go 語言實現。 專案後來加入了 Linux 基金會,遵從了 Apache 2.0 協議,專案程式碼在 GitHub 上進行維護。
Docker 自開源後受到廣泛的關注和討論,以至於dotCloud 公司後來都改名為 Docker Inc。Redhat已經在其 RHEL6.5 中集中支援 Docker;Google 也在其 PaaS 產品中廣泛應用。
Docker的主要目標:
通過對應用元件的封裝、分發、部署、執行等生命週期的管理,達到應用級別的一次封裝,到處執行。
小貼士:這裡的應用元件,可以是WEB應用,也可以是一套資料庫服務,甚至可以是一個作業系統編譯器。
2.為什麼使用docker
Docker容器虛擬化的優點
環境隔離;
通過cgroups和namesapce進行實現資源隔離,實現一臺機器執行多個容器互不影響。
更快速的交付部署;
使用docker,開發人員可以利用映象快速構建一套標準的研發環境;開發完成後,測試和運維人員可以直接通過使用相同的環境來部署程式碼。Docker可以快速建立和刪除容器,實現快速迭代,大量節約開發、測試、部署的時間。並且,各個步驟都有明確的配置和操作,整個過程全程公司內文件說明,使團隊更容易理解應用建立和工作的過程。
更高效的資源利用;
docker容器的執行不需要額外的虛擬化管理程式的支援,它是核心級的虛擬化,可以實現更高的效能,同時對資源的額外需求很低。
更易遷移擴充套件;
docker容器幾乎可以在任意的平臺上執行,包括烏力吉、虛擬機器、公有云、私有云、個人電腦、伺服器等,這種相容性讓使用者可以在不同平臺之間輕鬆的遷移應用。
更簡單的更新管理。
使用Dockerfile,只需要小小的配置修改,就可以替代以往的大量的更新工作。並且所有修改都是以增量的方式進行分發和更新,從而實現自動化和高效的容器管理。
3.虛擬化與docker
虛擬化定義:虛擬化是一種資源管理技術,是將計算機的各種實體資源,如伺服器、網路、記憶體及儲存等,予以抽象、轉換後呈現出來,打破實體結構間的不可切割的障礙,使使用者可以比原本的配置更好的方式來應用這些資源。這些資源的新虛擬部分是不受現有資源的架設方式,地域或物理配置所限制。一般所指的虛擬化資源包括計算能力和資料儲存。
系統虛擬化,Hypervisor Virtualization,全虛擬化。在 Host 中通過 Hypervisor 層實現安裝多個 GuestOS,每個 GuestOS 都有自己的核心,和主機的核心不同,GuestOS 之間完全隔離。
容器虛擬化,Operating System Virtualization ,使用 Linux 核心中的 namespaces 和 cgroups 實現程式組之間的隔離。是用核心技術實現的隔離,所以它是一個共享核心的虛擬化技術。
容器虛擬化沒有 GuestOS,使用 Docker 時下載的映象,只是為執行 App 提供的一個依賴的環境,是一個刪減版本的系統映象。一般情況下系統虛擬化沒有容器虛擬化的執行效率高,但是系統安全性高很多。
優越性:
你在一臺機器可以開10個虛擬機器,如果用docker可以開100個容器,就是這麼霸氣
4.docker官網註冊
註冊一個docker賬號:https://hub.docker.com/
完成註冊,我用的qq郵箱,等了10分鐘才收到
收到後啟用郵箱,進行登入
登入完畢