$ docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 7.0 dc7b40a0b05d 7 days ago 117MB
httpd latest a981c8992512 7 days ago 145MB
postgres latest f8dd270e5152 2 weeks ago 376MB
nginx latest b692a91e4e15 4 weeks ago 142MB
$ docker image pull redis:7.0.4
7.0.4: Pulling from library/redis
Digest: sha256:495732ba570db6a3626370a1fb949e98273a13d41eb3e26f7ecb1f6e31ad4041
Status: Downloaded newer image for redis:7.0.4
docker.io/library/redis:7.0.4
你會發現整個拉下來的速度和第一次差非常多,這是怎麼一回事呢?我們打開映像檔列表看看先。
List Images
bash
1 2 3 4 5 6 7
$ docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 7.0.4 dc7b40a0b05d 2 mins ago 117MB
redis 7.0 dc7b40a0b05d 2 mins ago 117MB
httpd latest a981c8992512 7 days ago 145MB
postgres latest f8dd270e5152 2 weeks ago 376MB
nginx latest b692a91e4e15 4 weeks ago 142MB
意外的發現 7.0 以及 7.0.4 的 IMAGE ID 是完全相同的,是因為其實這兩個是同一份映像檔,只是用不同的標籤標示而已,這才導致 Docker 本身的快取機制導致根本沒有下載的感覺,是因為本機已經有一份一樣的映像檔了。
$ docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 7-alpine 9192ed4e4955 1 mins ago 28.5MB
redis 7.0.4 dc7b40a0b05d 5 mins ago 117MB
redis 7.0 dc7b40a0b05d 5 mins ago 117MB
httpd latest a981c8992512 7 days ago 145MB
postgres latest f8dd270e5152 2 weeks ago 376MB
nginx latest b692a91e4e15 4 weeks ago 142MB