1.什麼是Docker鏡像
Docker鏡像是由文件系統疊加而成(是一種文件的存儲形式)。最底端是一個文件引導系統,即bootfs,這很像典型的Linux/Unix的引導文件系統。Docker用戶幾乎永遠不會和引導系統有什麼交互。實際上,當一個容器啓動後,它將會被移動到內存中,而引導文件系統則會被卸載,以留出更多的內存供磁盤鏡像使用。Docker容器啓動是需要的一些文件,而這些文件就可以稱爲Docker鏡像。
2.鏡像操作
2.1.列出鏡像
列出docker下的所有鏡像:docker images
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql latest 7bb2586065cd 2 months ago 477 MB
-
參數說明:
REPOSITORY:鏡像所在的倉庫名稱
TAG:鏡像標籤
IMAGE ID:鏡像ID
CREATED:鏡像的創建日期(不是獲取該鏡像的日期)
SIZE:鏡像大小 -
OPTIONS說明:
-a :列出本地所有的鏡像(含中間映像層)
-q :只顯示鏡像ID。
–digests :顯示鏡像的摘要信息
–no-trunc :顯示完整的鏡像信息
這些鏡像都是存儲在Docker宿主機的/var/lib/docker目錄下
[root@localhost docker]# cd /var/lib/docker
[root@localhost docker]# ll
總用量 4
drwx------. 3 root root 78 2月 17 22:06 containers
drwx------. 3 root root 22 2月 17 21:32 image
drwxr-x---. 3 root root 19 2月 17 21:32 network
drwx------. 17 root root 4096 6月 17 16:21 overlay2
drwx------. 4 root root 32 2月 17 21:32 plugins
drwx------. 2 root root 6 2月 17 21:32 swarm
drwx------. 2 root root 6 6月 17 16:31 tmp
drwx------. 2 root root 6 2月 17 21:32 trust
drwx------. 4 root root 169 2月 17 22:06 volumes
2.2.搜索鏡像
如果你需要從網絡中查找需要的鏡像,可以通過以下命令搜索
命令:docker search [OPTIONS] 鏡像名字
[root@localhost docker]# docker search tomcat
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/tomcat Apache Tomcat is an open source implementa... 2464 [OK]
docker.io docker.io/tomee Apache TomEE is an all-Apache Java EE cert... 66 [OK]
docker.io docker.io/dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba... 53 [OK]
docker.io docker.io/bitnami/tomcat Bitnami Tomcat Docker Image 29 [OK]
docker.io docker.io/kubeguide/tomcat-app Tomcat image for Chapter 1 26
docker.io docker.io/consol/tomcat-7.0 Tomcat 7.0.57, 8080, "admin/admin" 16 [OK]
docker.io docker.io/cloudesire/tomcat Tomcat server, 6/7/8 15 [OK]
docker.io docker.io/aallam/tomcat-mysql Debian, Oracle JDK, Tomcat & MySQL 11 [OK]
docker.io docker.io/tutum/tomcat Base docker image to run a Tomcat applicat... 11
docker.io docker.io/arm32v7/tomcat Apache Tomcat is an open source implementa... 6
docker.io docker.io/rightctrl/tomcat CentOS , Oracle Java, tomcat application s... 5 [OK]
docker.io docker.io/maluuba/tomcat7-java8 Tomcat7 with java8. 3
docker.io docker.io/amd64/tomcat Apache Tomcat is an open source implementa... 2
docker.io docker.io/arm64v8/tomcat Apache Tomcat is an open source implementa... 2
docker.io docker.io/99taxis/tomcat7 Tomcat7 1 [OK]
docker.io docker.io/camptocamp/tomcat-logback Docker image for tomcat with logback integ... 1 [OK]
docker.io docker.io/i386/tomcat Apache Tomcat is an open source implementa... 1
docker.io docker.io/ppc64le/tomcat Apache Tomcat is an open source implementa... 1
docker.io docker.io/appsvc/tomcat 0
docker.io docker.io/cfje/tomcat-resource Tomcat Concourse Resource 0
docker.io docker.io/jelastic/tomcat An image of the Tomcat Java application se... 0
docker.io docker.io/oobsri/tomcat8 Testing CI Jobs with different names. 0
docker.io docker.io/picoded/tomcat7 tomcat7 with jre8 and MANAGER_USER / MANAG... 0 [OK]
docker.io docker.io/s390x/tomcat Apache Tomcat is an open source implementa... 0
docker.io docker.io/secoresearch/tomcat-varnish Tomcat and Varnish 5.0 0 [OK]
- 參數說明
NAME:倉庫名稱
DESCRIPTION:鏡像描述
STARS:用戶評價,反應一個鏡像的受歡迎程度
OFFICIAL:是否官方
AUTOMATED:自動構建,表示該鏡像由Docker Hub自動構建流程創建的 - OPTIONS說明
–no-trunc : 顯示完整的鏡像描述
-s : 列出收藏數不小於指定值的鏡像。
–automated : 只列出 automated build類型的鏡像;
2.3.拉取鏡像
2.3.1.從Docker Hub拉取
Docker Hub:https://hub.docker.com
Docker鏡像首頁,包括官方鏡像和其它公開鏡像。Docker Hub上最受歡迎的10大鏡像(通過Docker registry API獲取不了鏡像被pull的個數,只能通過鏡像的stars數量,來衡量鏡像的流行度。毫無疑問,擁有最高stars數量的庫都是官方庫).
Mirror與Private Registry的區別:
- Private Registry(私有倉庫)是開發者或者企業自建的鏡像存儲庫,通常用來保存企業內部的 Docker 鏡像,用於內部開發流程和產品的發佈、版本控制。
- Mirror是一種代理中轉服務,我們(比如daocloud)提供的Mirror服務,直接對接Docker Hub的官方Registry。Docker Hub 上有數以十萬計的各類 Docker 鏡像。
使用命令拉取:
docker pull 鏡像名字[:TAG]
目前國外訪問docker hub速度上有點尷尬,使用docker Mirror勢在必行。現有國內提供docker鏡像加速服務的商家有不少,下面重點ustc鏡像。
2.3.2.ustc的鏡像
ustc是老牌的linux鏡像服務提供者了,還在遙遠的ubuntu 5.04版本的時候就在用。ustc的docker鏡像加速器速度很快。ustc docker mirror的優勢之一就是不需要註冊,是真正的公共服務。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
步驟:
(1)編輯該文件:vi /etc/docker/daemon.json
// 如果該文件不存在就手動創建;說明:在centos7.x下,通過vi。
(2)在該文件中輸入如下內容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
3)注意:一定要重啓docker服務,如果重啓docker後無法加速,可以重新啓動OS
[root@localhost docker]# service docker restart
Redirecting to /bin/systemctl restart docker.service
4)示例
[root@localhost docker]# docker pull zookeeper
Using default tag: latest
Trying to pull repository docker.io/library/zookeeper ...
latest: Pulling from docker.io/library/zookeeper
f5d23c7fed46: Pull complete
eaa7ca9a16a1: Pull complete
57f21f30136f: Pull complete
6e7c1070bcbc: Pull complete
f4d70619b3de: Pull complete
e4d5dc43f630: Pull complete
c9be43341e93: Pull complete
135ab2963089: Pull complete
Digest: sha256:4a70c5b011d94298f62c62d7341a374b6a3a5d15a246f76d4cba3584ae60b8f6
Status: Downloaded newer image for docker.io/zookeeper:latest
2.4.刪除鏡像
作用:刪除鏡像
刪除單個
docker rmi -f 鏡像ID
刪除多個
docker rmi -f 鏡像名1:TAG 鏡像名2:TAG
刪除全部
docker rmi -f $(docker images -qa)
示例:
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/zookeeper latest a873528df41f Less than a second ago 225 MB
docker.io/mysql latest 7bb2586065cd 2 months ago 477 MB
[root@localhost docker]# docker rmi -f a873528df41f
Untagged: docker.io/zookeeper:latest
Untagged: docker.io/zookeeper@sha256:4a70c5b011d94298f62c62d7341a374b6a3a5d15a246f76d4cba3584ae60b8f6
Deleted: sha256:a873528df41f67308900374218cbcb334bf764074f9daa76482d86e53f058589
Deleted: sha256:6112743ce75a12d3c5db9692c88cb4fd8f26bdacbee3fd6b2801a8a11d0cafa0
Deleted: sha256:474612b9b8b92623226ef0100c04598113a74ff9b34f3c47e9fc39e8cfcf1953
Deleted: sha256:136c24ea1ecb39f9070a8e2e7b6cedbc6e31a019d171910b7fb9f6efaa1f45d1
Deleted: sha256:af0ddb7072be87b262a98e8d9a30bb01e207ae44dfa7039beb09a4f7e85dfc19
Deleted: sha256:f60a1b0a8bdfbb66a0856863d4339802eeb7f593c4c4a6bddba425c278349fa1
Deleted: sha256:d4ba2b7e7a81205a5e6a7d35bc89b55dc5802fec6b5d35d93e4965e908b46d32
Deleted: sha256:4cfe7f0f8661eef6a97f30742474149c45ce22e7ca8f93e9e069abe333d2e470
Deleted: sha256:d8a33133e477d367977987129313d9072e0ec80894ed4c52c2d88186f354c29a
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql latest 7bb2586065cd 2 months ago 477 MB