前言
本系列文章爲《Docker進階與實戰》讀書筆記,記錄了一些書摘、一些我個人的想法以及在實踐的過程中踩過的坑。
Docker簡介
Docker是一個開源的容器引擎,可以方便的對容器進行管理。
它可以統一開發、測試、部署的環境和流程。
Github地址:github.com/docker/docker
Docker結構圖:
Docker是基於容器技術的輕量級虛擬化,其虛擬化技術是基於內核的CGroup和Namespace技術,處理邏輯與內核深度融合,性能與物理機非常相近。
Docker的組件
- Docker 客戶端
- Docker daemon
- Docker 容器
- Docker 鏡像
- Registry
Docker 客戶端
Docker採用C/S架構。對於Linux而言。其在發佈時,客戶端和服務端統一在同一個二進制文件中。而對於Mac而言,Docker只提供客戶端。
Docker 客戶端通過Docker command發起請求,在其他應用程序的代碼中也可以採用Docker 提供的RESTful API來發起請求。
Docker daemon
Docker daemon 也可以被理解爲Docker Server。其實現的功能就是接收客戶端發來的請求,並實現請求所要求的功能,同時針對請求返回相應的結果。
Docker 容器
容器是對鏡像的完美詮釋,容器以鏡像爲基礎,又爲鏡像提供了一個標準的和隔離的執行環境。
Docker的容器可以安裝任意的軟件和庫文件,做任意的運行環境配置。開發及運維人員在轉移和部署應用的時候,不用關心容器裏裝了什麼軟件,也不用瞭解它們是如何配置的。管理容器的Docker引擎同樣不關心容器裏的內容,只要讓這個容器運行起來就OK了。
Docker的誕生被稱爲“軟件界的創新和革命”,是因爲它會改變軟件界的開發、部署形態,降低成本,提高效率。
Docker 鏡像
Docker鏡像是運行環境的靜態體現,是一個還沒有運行起來的“運行環境”。Docker 鏡像相對於傳統的虛擬化技術的鏡像更輕量,它是一個可定製的rootfs。Docker鏡像的另一個創新:它是層級的、可複用的,可以極大減少磁盤和內存的開銷。
Docker 鏡像通常通過Dockerfile來創建。
還可以通過使用docker commit
將修改後的內容生成新的鏡像。
Registry(倉庫)
查了一些資料,並沒有合適的翻譯,按照它實現的功能我覺得叫倉庫也是ok 的。
Registry 是鏡像的倉庫,部署在互聯網服務端或者雲端。
倉庫在鏡像的傳輸過程中起着重要的作用。舉個栗子,我們在公司將某軟件的運行環境製作成鏡像,上傳到雲端的Registry中,可以很方便的在家裏的筆記本上或者在客戶的生產環境中直接從Registry上pull下來這個鏡像並運行咯。
Docker公司提供了官方的Registry叫Docker Hub。提供了大量的官方or第三方鏡像供大家選擇。
當然也可以自己部署一個Registry實現一個私人倉庫。
小結
在下篇文章中將會介紹Docker的安裝及一些基本的使用說明。