第二節(jié).docker鏡像管理
- 介紹
- docker鏡像是一個(gè)不包含Linux內(nèi)核的操作系統(tǒng)
- [root@data docker]# docker image ls
- REPOSITORY TAG IMAGE ID CREATED SIZE
- nginx latest 8c9ca4d17702 2 days ago 109MB
- 鏡像由docker公司的公共鏡像倉(cāng)庫(kù)下載
- 鏡像與容器的聯(lián)系
- 通過(guò)docker history <id/name>查看鏡像中各層的內(nèi)容及大小,每層對(duì)應(yīng)著dockerfile中的一個(gè)指令,docker鏡像默認(rèn)存儲(chǔ)在/var/lib/dockerk/<storage-driver>中
- 容器其實(shí)就是在鏡像的最上面加了一層讀寫(xiě)層,在運(yùn)行容器里做的任何修改,都會(huì)寫(xiě)到這個(gè)讀寫(xiě)層。如果容器刪除了,最上面的讀寫(xiě)層數(shù)據(jù)也就丟失了。docker使用存儲(chǔ)驅(qū)動(dòng)管理鏡像每層內(nèi)容及可讀寫(xiě)的容器層
- 存儲(chǔ)驅(qū)動(dòng)
- Ubuntu
- aufs devicemapper overlay2 overlay zfs vfs
- Debian
- aufs devicemapper overlay2 vfs overlay
- centos(6)
- devicemapper vfs overlay(7)
- fedora
- devicemapper overlay2 overlay vfs
- overlay overlay2 - ext4,xfs
- aufs -ext4,xfs
- devicemapper - direct-lvm
- btrfs -btrfs
- zfs -zfs
- Ubuntu
- docker鏡像管理常用的命令
- ls列出鏡像
- 使用實(shí)例
- [root@data docker]# docker image ls
- REPOSITORY TAG IMAGE ID CREATED SIZE
- nginx latest 8c9ca4d17702 2 days ago 109MB
- 使用實(shí)例
- build構(gòu)建鏡像(來(lái)自dockerfile)
- history查看鏡像歷史(執(zhí)行了那些步驟)
- 使用實(shí)例
- [root@data docker]# docker image history nginx:latest
- IMAGE CREATED CREATED BY SIZE COMMENT
- 8c9ca4d17702 2 days ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
- <missing> 2 days ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B
- <missing> 2 days ago /bin/sh -c #(nop) EXPOSE 80 0B
- <missing> 2 days ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22B
- <missing> 2 days ago /bin/sh -c set -x && apt-get update && apt… 54MB
- <missing> 2 days ago /bin/sh -c #(nop) ENV NJS_VERSION=1.15.9.0.… 0B
- <missing> 2 days ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.15.9-… 0B
- <missing> 3 weeks ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
- <missing> 3 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
- <missing> 3 weeks ago /bin/sh -c #(nop) ADD file:5a6d066ba71fb0a47… 55.3MB
- 使用實(shí)例
- inspect顯示一個(gè)或多個(gè)鏡像詳細(xì)信息
- 使用實(shí)例
- [root@data docker]# docker image inspect nginx:latest
- [
- {
- "Id": "sha256:8c9ca4d17702c354fa41432be278d8ce6c0761b1302608034fa3ad49c6da43f9",
- "RepoTags": [
- "nginx:latest"
- ],
- "RepoDigests": [
- "nginx@sha256:18c0755594af107923baa2e65fcef35aea4ab0cea7862d19c27aa127bacb458e"
- ],
- 。。。。。。。
- 使用實(shí)例
- pull從鏡像倉(cāng)庫(kù)拉取鏡像
- 實(shí)例
- [root@data docker]# docker pull nginx:1.11 ----<name:version>
- Using default tag: latest
- latest: Pulling from library/nginx
- Digest: sha256:18c0755594af107923baa2e65fcef35aea4ab0cea7862d19c27aa127bacb458e
- Status: Image is up to date for nginx:latest
- [root@data docker]# docker image pull nginx
- Using default tag: latest
- latest: Pulling from library/nginx
- Digest: sha256:18c0755594af107923baa2e65fcef35aea4ab0cea7862d19c27aa127bacb458e
- Status: Image is up to date for nginx:latest
- 實(shí)例
- push推送一個(gè)鏡像到倉(cāng)庫(kù)(需要登錄)
- rm刪除鏡像
- 實(shí)例
- [root@data docker]# docker image rm httpd:latest
- Untagged: httpd:latest
- Untagged: httpd@sha256:5e7992fcdaa214d5e88c4dfde274befe60d5d5b232717862856012bf5ce31086
- Deleted: sha256:d3a13ec4a0f1157fb3502ec1248f2b1e7dbeeb6a2e21e0c1d3f43b7a494221ed
- Deleted: sha256:ffda16bd6375fb3b126592485a714e2ff95575600128c4ef2d34207573284206
- Deleted: sha256:61d9f00c32aab3132c865ccf069bfeead749a949df6f96f6e3bb800eef193c46
- Deleted: sha256:c8a247f5bfa5b62fc08f2f18df0e6a4873e0a3eceb15abb906092eecaa84d9fc
- Deleted: sha256:04eb6e2a1ea13cc4832d2b15e7ba5295b0fbf5c9f9f40e0a27fd0be1c7b3a1c7
- 實(shí)例
- prune移除未使用的鏡像。沒(méi)有被標(biāo)記或被任何容器引用的
- tag創(chuàng)建一個(gè)引用鏡像標(biāo)記目標(biāo)鏡像
- 實(shí)例
- [root@data docker]# docker image tag nginx:latest nginx:1.15
- [root@data docker]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- nginx 1.15 8c9ca4d17702 2 days ago 109MB
- nginx latest 8c9ca4d17702 2 days ago 109MB
- 實(shí)例
- save保存一個(gè)或多個(gè)鏡像到一個(gè)tar歸檔文件
- 實(shí)例
- docker image save nginx:1.15 > /tmp/nginx15.tar
- 實(shí)例
- load加載鏡像來(lái)自tar歸檔或標(biāo)準(zhǔn)輸入
- 實(shí)例
- docker image load < /tmp/nginx15.tar
- 實(shí)例
- ls列出鏡像