7. Docker初步
下面進入文章綜(chao)述(xi)時間
docker是什么
簡單說,Docker是一個容器管理器。
百度百科說:Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
Dcoker使得用戶可以將應用與其依賴包共同打包到一個標準化的單元中。
看圖說話
先來看看docker的官方logo
看到了嗎?自己面壁幾分鐘,編一個故事出來。
這個是docker開發公司編出的故事:交付運行環境如同海運,OS如同一個貨輪,每一個在OS基礎上的軟件都如同一個集裝箱,用戶可以通過標準化手段自由組裝運行環境,同時集裝箱的內容可以由用戶自定義,也可以由專業人員制造。這樣,交付一個軟件,就是一系列標準化組件的集合的交付,如同樂高積木,用戶只需要選擇合適的積木組合,并且在最頂端署上自己的名字(最后個標準化組件是用戶的app)。這也就是基于docker的PaaS產品的原型。[1]
更多理論?
安裝
mac,win:到https://www.docker.com/products/docker#/,下載安裝包即可。
Ubuntu:https://get.docker.com/提供了一個傻瓜是安裝,直接wget -qO- https://get.docker.com/ | sh
搞定``
安裝完后,運行下面命令可以看到一堆關于docker的信息
$ docker info
Docker架構
Docker使用+客戶端++-+<++服務器++>++架構。客戶端(++Clent++)與服務器后臺(++Daemon++)通信,此++Daemon++干各種臟活累+活。客戶端+與+服務器+可以在不同機器,也可以在相同機器。
Daemon:運行與Docker服務器
客戶端(Client):Docker主要的用戶界面,接受各種命令并與Daemon通信。
鏡像(Image):一個只讀的模版,用于創建 Docker 容器的模板。
容器(Container):獨立運行的一個或一組應用,鏡像的實例。
寄存器(Registry):就是鏡像庫。
容器與鏡像的關系類似于面向對象編程中的對象與類。[2]
鏡像 -> 類
容器 -> 對象
+容器+都是互相隔離的。他們有唯一的+ID+和唯一的+name+。+容器+需要提供一些服務,所以+容器+允許你暴露一些特定的端口[3]。
容器與虛擬機
具體內容自己百度,我懶得抄了。
不過有一個很大的區別就是+容器+被設計來跑一個進程,并不能很好的模仿一個完整的環境。Docker設計者強烈建議“一個容器一個進程”。
Docker Engine 和 Docker Machine
一般當人們說 “Docker”時, 他們一般指的是"Docker Engine"。“Docker Machine”讓你可以在虛擬機上安裝"Docker Engine"