Docker這麼火爆。章節一:帶你詳盡瞭解Docker容器的介紹及使用
前言
很多小夥伴可能在工作中都聽說過Docker,但是實際工作中卻沒有使用過,聽得多了,也對Docker內心有一種很深切的想了解,但是因為各種原因而不知道如何去了解而發愁,不要急,這篇文章帶你認識Docker!
一、 Docker簡介
Docker是一個開源專案,誕生於2013年初,最初是dotCloud公司內部的一個業餘專案。它基於 Google 公司推出的 Go 語言實現。專案後來加入了 Linux 基金會,遵從了 Apache 2.0 協議,專案程式碼在 GitHub 上進行維護。
Docker 專案的目標是實現輕量級的作業系統虛擬化解決方案。Docker 的基礎是 Linux 容器(LXC)等技術。
背景:雲端計算興起後,伺服器硬體擴充套件非常便利,軟體服務部署成為了瓶頸,docker趁勢而興。
二、 為什麼使用Docker?
①、 容器的啟動可以在秒級實現,比傳統的虛擬機器方式要快得多
②、 對系統資源的利用率很高,一臺主機上可以同時執行數千個 Docker 容器
③、 docker的出現,讓開發/測試/線上的環境部署,成為便利一條龍。
1、 更快速的交付和部署
對開發和運維(devop)人員來說,最希望的就是一次建立或配置,可以在任意地方正常執行。
開發者可以使用一個標準的映象來構建一套開發容器,開發完成之後,運維人員可以直接使用這個容器來部署程式碼。Docker 可以快速建立容器,快速迭代應用程式,並讓整個過程全程可見,使團隊中的其他成員更容易理解應用程式是如何建立和工作的。Docker 容器很輕很快!容器的啟動時間是秒級的,大量地節約開發、測試、部署的時間。
2、 更高效的虛擬化
Docker 容器的執行不需要額外的 hypervisor 支援,它是核心級的虛擬化,因此可以實現更高的效能和效率。
3、 更輕鬆的遷移和擴充套件
Docker 容器幾乎可以在任意的平臺上執行,包括物理機、虛擬機器、公有云、私有云、個人電腦、伺服器等。這種相容性可以讓使用者把一個應用程式從一個平臺直接遷移到另外一個。
4、更簡單的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理。
5、 對比傳統虛擬機器
特性 | 容器 | 虛擬機器 |
啟動 | 秒級 | 分鐘級 |
硬碟使用 | 一般為MB | 一般為GB |
效能 | 接近原生 | 弱於Docker |
系統支援量 | 單機支援上千個容器 | 一般幾十個 |
三、 Docker基本概念
1、 Docker架構
host:主機載體,也就是Docker安裝的地方
繼承類比方式:
Class2 extents Class1 相當於 Object o = new Class2
此時,o物件的結構中,有Class1的成員結構
image2 extents image1 相當於 Container c = new image2
此時,c容器中,有image1的檔案
2、Docker映象
①、 Docker 映象就是一個只讀的模板。
(例如:一個映象可以包含一個完整的 ubuntu 作業系統環境,裡面僅安裝了 Apache 或使用者需要的其它應用程式。)
②、 映象可以用來建立 Docker 容器。
③、 Docker 提供了一個很簡單的機制來建立映象或者更新現有的映象,使用者甚至可以直接從其他人那裡下載一個已經做好的映象來直接使用。
3、 Docker容器
①、 Docker 利用容器來執行應用。
②、 容器是從映象建立的執行例項。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。
③、 可以把容器看做是一個簡易版的 Linux 環境(包括root使用者許可權、程序空間、使用者空間和網路空間等)和執行在其中的應用程式。
4、 Docker倉庫
①、 倉庫是集中存放映象檔案的場所。有時候會把倉庫和倉庫註冊伺服器(Registry)混為一談,並不嚴格區分。實際上,倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。
②、 倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。
③、 最大的公開倉庫是 Docker Hub,存放了數量龐大的映象供使用者下載。
④、 當然,使用者也可以在本地網路內建立一個私有倉庫。
⑤、 當用戶建立了自己的映象之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個映象時候,只需要從倉庫上 pull 下來就可以了
5、 容器、映象的執行關係
下一章節:《Docker安裝部署及基本操作》
編後語
公眾號【Java極客思維】將會針對Docker做一個Docker的系列章節來由淺入深的介紹Docker及深入的使用,有興趣的小夥伴可以關注公眾號並轉發文章,讓更多的小夥伴看到關於【Docker系列的介紹及使用】
更多精彩敬請關注公眾號
Java極客思維
微信掃一掃,關注公眾