跟我一起學docker(一)--認識

跟我一起學docker(一)--認識

最近開始自學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賬號:hub.docker.com/

完成註冊,我用的qq郵箱,等了10分鐘才收到

收到後激活郵箱,進行登錄

登錄完畢


推薦閱讀:

一文了解 Kubernetes 是什麼?
Kubernetes中的CI/CD——TheNewStack的報告解讀
kubernetes kustomize 初體驗
快速了解 kubernetes 的 ConfigMap 和 Secrets
現在做雲計算的出路到底在哪?

TAG:容器雲 | Kubernetes | Docker |