?Docker 各個組件是如何協(xié)作的
還記得我們運(yùn)行的第一個容器嗎?現(xiàn)在通過它來體會一下 Docker 各個組件是如何協(xié)作的。
容器啟動過程如下:

Docker 客戶端執(zhí)行docker run命令。
Docker daemon 發(fā)現(xiàn)本地沒有 httpd 鏡像。
daemon 從 Docker Hub 下載鏡像。
下載完成,鏡像 httpd 被保存到本地。
Docker daemon 啟動容器。
docker images可以查看到 httpd 已經(jīng)下載到本地。

docker ps或者docker container ls顯示容器正在運(yùn)行。

小結(jié)
Docker 借鑒了集裝箱的概念。標(biāo)準(zhǔn)集裝箱將貨物運(yùn)往世界各地,Docker 將這個模型運(yùn)用到自己的設(shè)計哲學(xué)中,唯一不同的是:集裝箱運(yùn)輸貨物,而 Docker 運(yùn)輸軟件。
每個容器都有一個軟件鏡像,相當(dāng)于集裝箱中的貨物。容器可以被創(chuàng)建、啟動、關(guān)閉和銷毀。和集裝箱一樣,Docker 在執(zhí)行這些操作時,并不關(guān)心容器里到底裝的什么,它不管里面是 Web Server,還是 Database。
用戶不需要關(guān)心容器最終會在哪里運(yùn)行,因為哪里都可以運(yùn)行。
開發(fā)人員可以在筆記本上構(gòu)建鏡像并上傳到 Registry,然后 QA 人員將鏡像下載到物理或虛擬機(jī)做測試,最終容器會部署到生產(chǎn)環(huán)境。
使用 Docker 以及容器技術(shù),我們可以快速構(gòu)建一個應(yīng)用服務(wù)器、一個消息中間件、一個數(shù)據(jù)庫、一個持續(xù)集成環(huán)境。因為 Docker Hub 上有我們能想到的幾乎所有的鏡像。
不知大家是否意識到,潘多拉盒子已經(jīng)被打開。容器不但降低了我們學(xué)習(xí)新技術(shù)的門檻,更提高了效率。
如果你是一個運(yùn)維人員,想研究負(fù)載均衡軟件 HAProxy,只需要執(zhí)行docker run haproxy,無需繁瑣的手工安裝和配置既可以直接進(jìn)入實戰(zhàn)。
如果你是一個開發(fā)人員,想學(xué)習(xí)怎么用 django 開發(fā) Python Web 應(yīng)用,執(zhí)行docker run django,在容器里隨便折騰吧,不用擔(dān)心會搞亂 Host 的環(huán)境。
不夸張的說:容器大大提升了 IT 人員的幸福指數(shù)。