在使用 Docker 進(jìn)行應(yīng)用部署時(shí),我們常常會(huì)遇到 Docker 變更號(hào)這個(gè)概念。那么,Docker 變更號(hào)具體是什么呢?
Docker 變更號(hào)是指 Docker 鏡像生成時(shí)的唯一標(biāo)識(shí)符。每個(gè) Docker 鏡像都會(huì)有自己的變更號(hào),用于標(biāo)識(shí)鏡像的版本變更。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest a9c4ea870c85 9 days ago 133MB mongo latest 4c22dead5651 9 days ago 555MB redis latest b33712948e77 9 days ago 105MB
上述 Docker 鏡像列表中,每個(gè)鏡像后面的 IMAGE ID 即為其對(duì)應(yīng)的變更號(hào)。可以看到,每個(gè)變更號(hào)都是由 12 個(gè)字符組成的、看上去十分隨機(jī)的字符串。
我們可以使用 Docker 命令行工具來(lái)查看某個(gè) Docker 鏡像的變更歷史,了解每個(gè)版本的變更詳情。例如:
$ docker history nginx IMAGE CREATED CREATED BY SIZE COMMENT a9c4ea870c85 9 days ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B0ef2e08edf2c9 days ago /bin/sh -c #(nop) STOPSIGNAL SIGQUIT 0Be0e6f4244d3f9 days ago /bin/sh -c #(nop) EXPOSE 80 0Be89cf7b9e29c9 days ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22Bc7a8e3f98d7a9 days ago /bin/sh -c set -x && addgroup --system … 22.5MBe5c5b7dbb79a9 days ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.21.1 0B345f9b9c91879 days ago /bin/sh -c #(nop) LABEL maintainer=NGINX D… 0B2f828ba50a194 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B135997cb2a2a4 weeks ago /bin/sh -c #(nop) ADD file:7d8e1f16bac7e5d5… 72.8MB
上面的操作中,我們使用 docker history 命令查看了當(dāng)前系統(tǒng)中的 nginx 鏡像的歷史記錄,其中標(biāo)黃的字符串就是其變更號(hào)。通過(guò)查看這個(gè)列表,我們可以了解到每個(gè)版本的變更詳情,例如構(gòu)建時(shí)使用的命令、增加或刪除的文件等。