Docker學習之瞭解基礎概念

什麼是 Docker?

Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從Apache2.0協議開源。

Docker是一個開源的引擎,可以輕鬆的爲任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、 bare metal、OpenStack 集羣和其他的基礎應用平臺。 

Docker的應用場景

  • Web 應用的自動化打包和發佈。
  • 自動化測試和持續集成、發佈。
  • 在服務型環境中部署和調整數據庫或其他的後臺應用。
  • 從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。

 

Docker 的優點

  • 1、簡化程序:

Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數週的 任務,在Docker容器的處理下,只需要數秒就能完成。

  • 2、避免選擇恐懼症:

如果你有選擇恐懼症,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、後臺應用、數據庫應用、大數據應用比如 Hadoop 集羣、消息隊列等等都可以打包成一個鏡像部署。

  • 3、節省開支:

一方面,雲計算時代到來,使開發者不必爲了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與雲的結合,讓雲空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。

 

Docker 的三個核心概念

鏡像

  • docker 鏡像就是 image。從本質上來說鏡像就是一系列的文件(包括應用程序的文件,也包括應用環境的文件),以聯合文件系統分層的形式保存到本地;
  • docker鏡像:(docker中的文件系統都是隻讀的)

從本質上面來說,Docker就是一系列的文件,可以包括我們的應用的程序的文件,我們應用的環境的文件,Docker把這些文件保存在了本地,既然保存了,那麼是以什麼樣的格式進行保存的呢?說到鏡像的存儲格式,就要說到linux的一個存儲技術,叫做聯合文件系統,Union FS,它是一種分層的文件系統,它可以將不同的目錄掛到同一個虛擬的文件系統下面,通過這樣一種方式,聯合文件系統就可以實現文件的分成,比如 test1 可以看做是第一層,test2 可以看做是第二層,每一層有每一層自己的文件,Docker鏡像就是利用了這種分層的概念來實現了鏡像存儲。

 

容器

 

  1. docker的容器可理解爲一個進程(可以將容器想象爲一個虛擬機);
  2. docker容器中除了Container層可寫外,其他層都是隻讀的 N層 鏡像的各層都是隻讀的,如果想對可讀層進行修改操作,那麼本層內容會傳到可寫層,然後再進行修改操作;
  3. 當我們的應用進行文件查找是會從最頂層可寫層查找(因爲可讀層內容都傳到可寫層),如果可寫層沒有相應數據纔會去可讀層查找。
  4. 容器中Container層可以修改(即可寫),但是在鏡像中Container層是不可以修改的,這樣也就保證了同一個鏡像可以生成多個容器獨立運行,而他們之間沒有任何的干擾。

Docker容器的本質是一個進程。Docker鏡像的每一層都是隻讀的,而容器作爲最上層,是可讀可寫的。如果程序需要對鏡像進行修改,那麼Docker會把要修改的鏡像文件拷貝到最上層的容器中,然後再進行修改。往後對該文件的訪問會優先從容器中讀取,尋找文件的順序是從下往下。

容器的本質是進程,容器可修改,鏡像不可修改,這樣就可以保證同一個鏡像可以生成多個容器獨立運行。

 

倉庫

1、構建鏡像的目的:是爲了在其他的服務器,其他的環境運行我們的程序。(爲了在其他地方運行,我們就需要將構建的鏡像傳遞到目的地纔可以,倉庫可以起到傳輸傳遞作用。)

2、傳輸過程:先將構建的鏡像傳到docker倉庫中,再由目的地去docker倉庫將我們的鏡像拉過去,這樣就完成了傳輸過程。

3、docker倉庫的提供者:中央服務器

    中央服務器地址:hub.docker.com(國際)、c.163.com(國內)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章