title: Docker結(jié)構(gòu)
date: 2017-12-08 22:07:19
tagsi: 容器
categories: 容器
容器介紹
容器與虛擬機(jī)
- 容器:應(yīng)用程序;依賴
-
虛擬機(jī):應(yīng)用程序;依賴莱坎;操作系統(tǒng)
docker_vm.jpg
容器解決的問題
簡化打包往踢、部署,使應(yīng)用具備了超強(qiáng)的可移植能力
對于現(xiàn)在多服務(wù)的應(yīng)用往往依賴多個(gè)組件(例如:MQ,DB,Cache等)膊毁,整個(gè)開發(fā)周期又需要部署多個(gè)環(huán)境(開發(fā),測試,正式等)惰帽,這就為運(yùn)維帶來極大的不便:
594a17934f0dd.jpeg
上面的圖有兩個(gè)變量:
- 應(yīng)用組件
- 服務(wù)器環(huán)境
容器能做的就是就是為應(yīng)用組件提供一個(gè)基于容器的標(biāo)準(zhǔn)化環(huán)境,讓容器可以運(yùn)行在幾乎所有操作系統(tǒng)上
594a19569b110.jpeg
好處:
- 隔離:容器環(huán)境與宿主環(huán)境隔離
- 重用:同一個(gè)組件只需要?jiǎng)?chuàng)建一次運(yùn)行環(huán)境就可以在其他機(jī)器上運(yùn)行
- 一致:只需要配置好標(biāo)準(zhǔn)的 runtime 環(huán)境父虑,服務(wù)器就可以運(yùn)行任何容器
Docker組成
核心組件:
- Docker 客戶端 - Client
- Docker 服務(wù)器 - Docker daemon
- Docker 鏡像 - Image
- Registry
- Docker 容器 - Container
docker_architecture.jpg
Docker啟動(dòng)過程
上篇文章最后提到了Docker的安裝并運(yùn)行了httpd:sudo docker run -d -p 80:80 httpd
結(jié)合Docker的組成该酗,說明一下在容器啟動(dòng)過程這些組件是怎么協(xié)作的:
- docker client調(diào)用docker daemon請求啟動(dòng)一個(gè)容器
- docker daemon會向host請求創(chuàng)建容器
- host創(chuàng)建一個(gè)空的容器
- docker daemon檢查本機(jī)docker鏡像文件(如果沒有,則到Registry下載)
- 將鏡像文件加載到容器中