docker 系列(二) - docker的核心組件

整體架構(gòu)

整體架構(gòu)

由圖可知,docker整體分為三個(gè)部分:

  1. docker客戶端(client)
  2. docker服務(wù)器(host)= 守護(hù)進(jìn)程(Docker daemon)+ 容器(Container )+ 鏡像(Images)
  3. 倉庫(registry)

客戶端

一個(gè)負(fù)責(zé)接收用戶輸入,并且把輸入傳給docker daemon的工具,類似于我們的redis客戶端等。常見的docker客戶端就是docker命令,除了docker命令,還可以用rest api和服務(wù)器交流。

Docker daemon

Docker daemon是Linux上的一個(gè)服務(wù),它負(fù)責(zé)創(chuàng)建、運(yùn)行、監(jiān)控容器,構(gòu)建、存儲(chǔ)鏡像。

  1. 啟動(dòng)
    systemctl start docker
  2. 關(guān)閉
    systemctl stop docker
  3. 查看狀態(tài)
    systemctl status docker
[root@VM_90_159_centos _data]# systemctl status docker
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2018-10-20 15:10:05 CST; 19s ago
     Docs: https://docs.docker.com
 Main PID: 14970 (dockerd)
    Tasks: 41
   Memory: 68.4M
   CGroup: /system.slice/docker.service
           14970 /usr/bin/dockerd
           14976 docker-containerd --config /var/run/docker/containerd/containerd.toml

Oct 20 15:10:05 VM_90_159_centos dockerd[14970]: time="2018-10-20T15:10:05.277903374+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc42017feb0, CONNECTING" module=grpc
Oct 20 15:10:05 VM_90_159_centos dockerd[14970]: time="2018-10-20T15:10:05.278102871+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc42017feb0, READY" module=grpc
Oct 20 15:10:05 VM_90_159_centos dockerd[14970]: time="2018-10-20T15:10:05.278126340+08:00" level=info msg="Loading containers: start."
Oct 20 15:10:05 VM_90_159_centos dockerd[14970]: time="2018-10-20T15:10:05.655354379+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Oct 20 15:10:05 VM_90_159_centos dockerd[14970]: time="2018-10-20T15:10:05.748168307+08:00" level=info msg="Loading containers: done."
Oct 20 15:10:05 VM_90_159_centos dockerd[14970]: time="2018-10-20T15:10:05.758837605+08:00" level=info msg="Docker daemon" commit=e68fc7a graphdriver(s)=devicemapper version=18.06.1-ce
Oct 20 15:10:05 VM_90_159_centos dockerd[14970]: time="2018-10-20T15:10:05.759869686+08:00" level=info msg="Daemon has completed initialization"
Oct 20 15:10:05 VM_90_159_centos dockerd[14970]: time="2018-10-20T15:10:05.764327185+08:00" level=warning msg="Could not register builder git source: failed to find git binary: exec: \"git\": executable file not found in $PATH"
Oct 20 15:10:05 VM_90_159_centos systemd[1]: Started Docker Application Container Engine.
Oct 20 15:10:05 VM_90_159_centos dockerd[14970]: time="2018-10-20T15:10:05.798973361+08:00" level=info msg="API listen on /var/run/docker.sock"

鏡像

類似于重裝系統(tǒng)中的ISO或者ghost文件,通過這個(gè)文件我們可以重裝很多系統(tǒng);同樣的docker中的鏡像也是系統(tǒng)(可能少了內(nèi)核)和一些軟件或者服務(wù)的結(jié)合體,通過鏡像我們可以運(yùn)行很多個(gè)容器。
比如某個(gè)鏡像可能含有一個(gè)centos系統(tǒng),一個(gè)redis服務(wù),那么我們可以用這個(gè)鏡像啟動(dòng)多個(gè)容器,這些容器都有redis服務(wù)。

鏡像的制作
  • 通過編寫Dockerfile,利用docker build來構(gòu)建鏡像
  • 在已有鏡像啟動(dòng)的容器中,運(yùn)行各種命令,得到一個(gè)新的環(huán)境;再通過docker commit把這個(gè)環(huán)境制作成鏡像
容器

docker容器是docker鏡像運(yùn)行的實(shí)例;如果把鏡像看做是maven的打包階段,那么容器就是打出來的jar或者war包運(yùn)行的結(jié)果。

倉庫(registry)

  • 倉庫是存放鏡像的地方,我們可以通過倉庫找到各種各樣別人制作的鏡像。
  • 倉庫也分為公有倉庫和私有倉庫。默認(rèn)的docker倉庫就是公有倉庫,Docker Hub(https://hub.docker.com/),它由Docker公司維護(hù)。但是公有倉庫訪問很慢,為了快速和安全,我們一般還會(huì)搭建私人倉庫。
命令
  • docker search image-name 查看某個(gè)鏡像是否存在
  • docker pull image-name 拉取鏡像

docker run的整個(gè)過程

docker run -d -p 8020:80 httpd

  1. docker客戶端接收到該命令并且把它傳給Docker daemon
  2. Docker daemo收到命令后,先查找本地倉庫是否有httpd的鏡像
  3. 如果沒有該鏡像,它會(huì)先從docker register中下載該鏡像 (docker images 查看本地鏡像)
  4. 服務(wù)器運(yùn)行該鏡像 (docker ps/docker container ls 查看本地運(yùn)行的docker進(jìn)程)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容