?Docker 各個組件是如何協(xié)作的
還記得我們運行的第一個容器嗎?現(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顯示容器正在運行贷掖。
小結(jié)
Docker 借鑒了集裝箱的概念。標(biāo)準(zhǔn)集裝箱將貨物運往世界各地渴语,Docker 將這個模型運用到自己的設(shè)計哲學(xué)中苹威,唯一不同的是:集裝箱運輸貨物,而 Docker 運輸軟件驾凶。
每個容器都有一個軟件鏡像牙甫,相當(dāng)于集裝箱中的貨物。容器可以被創(chuàng)建调违、啟動窟哺、關(guān)閉和銷毀。和集裝箱一樣技肩,Docker 在執(zhí)行這些操作時且轨,并不關(guān)心容器里到底裝的什么,它不管里面是 Web Server虚婿,還是 Database殖告。
用戶不需要關(guān)心容器最終會在哪里運行,因為哪里都可以運行雳锋。
開發(fā)人員可以在筆記本上構(gòu)建鏡像并上傳到 Registry,然后 QA 人員將鏡像下載到物理或虛擬機做測試羡洁,最終容器會部署到生產(chǎn)環(huán)境玷过。
使用 Docker 以及容器技術(shù),我們可以快速構(gòu)建一個應(yīng)用服務(wù)器、一個消息中間件辛蚊、一個數(shù)據(jù)庫粤蝎、一個持續(xù)集成環(huán)境。因為 Docker Hub 上有我們能想到的幾乎所有的鏡像袋马。
不知大家是否意識到初澎,潘多拉盒子已經(jīng)被打開。容器不但降低了我們學(xué)習(xí)新技術(shù)的門檻虑凛,更提高了效率碑宴。
如果你是一個運維人員,想研究負(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ù)。