Docker的那些事兒—Docker簡介(1)
什麼是Docker?
Docker官網是這麼描述的:WHAT IS DOCKER? Docker is the world’s leading software containerization platform. Docker is the company driving the container movement and the only container platform provider to address every application across the hybrid cloud. Today’s businesses are under pressure to digitally transform but are constrained by existing applications and infrastructure while rationalizing an increasingly diverse portfolio of clouds, datacenters and application architectures. Docker enables true independence between applications and infrastructure and developers and IT ops to unlock their potential and creates a model for better collaboration and innovation.
Docker是一個開源專案,誕生於2013年初,最初是dotCloud公司內部的一個業餘專案。它基於Google公司推出的Go語言實現。專案後來加入了Linux基金會,遵從Apache 2.0協議,專案程式碼在GitHub上進行維護。Docker自開源後受到廣泛的關注和討論,以至於dotCloud公司後來都改名為Docker Inc。Docker專案的目標是實現輕量級的作業系統虛擬化解決方案。Docker的基礎是Linux容器(LXC)等技術。在LXC的基礎上Docker進行了進一步的封裝,讓使用者不需要去關心容器的管理,使得操作更為簡便。使用者操作Docker的容器就像操作一個快速輕量級的虛擬機器一樣簡單。
下圖比較了Docker容器和傳統虛擬機器的不同之處,容器是在作業系統層面上實現虛擬化,直接複用本地主機的作業系統,而傳統虛擬機器則是在硬體層面實現。說的直白一點就是容器虛擬化的是作業系統,而虛擬機器虛擬化的是硬體。
為什麼要用Docker?
作為一種新興的虛擬化方式,Docker跟傳統的虛擬化方式相比具有眾多的優勢。首先,Docker容器的啟動可以在秒級實現,這相比傳統的虛擬機器方式要快得多。其次,Docker對系統資源的利用率很高,一臺主機上可以同時執行數千個 Docker容器。容器除了執行其中應用外,基本不消耗額外的系統資源,使得應用的效能很高,同時系統的開銷儘量小。傳統虛擬機器方式執行10個不同的應用就要起10個虛擬機器,而Docker只需要啟動10個隔離的應用即可。具體說來,Docker 在如下幾個方面具有較大的優勢:
更快速的交付和部署
對開發和運維(devops)人員來說,最希望的就是一次建立或配置,可以在任意地方正常執行。開發者可以使用一個標準的映象來構建一套開發容器,開發完成之後,運維人員可以直接使用這個容器來部署程式碼。Docker可以快速建立容器,快速迭代應用程式,並讓整個過程全程可見,使團隊中的其他成員更容易理解應用程式是如何建立和工作的。Docker容器很輕很快!容器的啟動時間是秒級的,大量地節約開發、測試、部署的時間。
更高效的虛擬化
Docker容器的執行不需要額外的hypervisor支援,它是核心級的虛擬化,因此可以實現更高的效能和效率。
更輕鬆的遷移和擴充套件
Docker 容器幾乎可以在任意的平臺上執行,包括物理機、虛擬機器、公有云、私有云、個人電腦、伺服器等。這種相容性可以讓使用者把一個應用程式從一個平臺直接遷移到另外一個。
更簡單的管理
使用Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理。
對比傳統虛擬機器總結
特性 容器 虛擬機器
啟動 秒級 分鐘級
硬碟 一般為MB 一般為GB
效能 接近原生 弱於
系統支援 單機支援上千個容器 一般幾十個
怎樣學習Docker?
學習docker的途徑很多,網路上關於docker資源豐富且比較雜
1. 本教程將指導你一步步的學習docker的架構、映象、容器、網路、儲存等
2. Docker官網
相關文章
- Docker容器中應避免的那些事兒Docker
- Docker的那些事兒—Docker卷資料恢復或遷移(33)Docker資料恢復
- Docker_Docker介紹1Docker
- docker 簡介Docker
- Docker簡介Docker
- Docker 從入門到實踐-1-Docker簡介Docker
- Docker Machine簡介DockerMac
- Docker Machine 簡介DockerMac
- Docker從入門到放棄(1) Docker簡介與安裝Docker
- webpack的那些事兒Web
- Ubuntu的那些事兒Ubuntu
- Docker系列課程01-Docker簡介Docker
- Docker Swarm Mode簡介DockerSwarm
- Docker Compose簡介Docker
- 3-Docker簡介Docker
- [雲原生]Docker - 簡介Docker
- Docker入門簡介Docker
- babel那些事兒Babel
- PHP那些事兒PHP
- OAuth那些事兒OAuth
- Git那些事兒Git
- 從docker介紹及其簡介Docker
- 開源的那些事兒 (1):如何看待開源
- https的那些事兒HTTP
- 面試的那些事兒--01面試
- TCP 的那些事兒(下)TCP
- TCP 的那些事兒(上)TCP
- Rest API 的那些事兒RESTAPI
- Redis那些事(一) — Redis簡介Redis
- MVP那些事兒(1) 用場景說話MVP
- Docker簡介與入門Docker
- Docker簡介及安裝Docker
- 聊聊viewport那些事兒View
- Java字串那些事兒Java字串
- 漏洞檢測的那些事兒
- 雲原生java的那些事兒Java
- HTTP 快取的那些事兒HTTP快取
- iOS 截圖的那些事兒iOS