Taker's インフラ関連技術調査ログ

インフラ関連についての調査メモです。

Docker Imageの履歴を確認する

docker inspect コマンドを使うことでImageの状態を知ることができるが、 docker historyコマンドを使うとImageに対してそれまでに加えてきた内容を知ることができる。

例としてOfficialのtomcatをダウンロードしてみる。 docker history コマンドはImageがローカルにダウンロード済みである必要がある。

$ docker pull tomcat:latest
$ docker history tomcat
IMAGE               CREATED             CREATED BY                                      SIZE
cef95d42a67e        6 days ago          /bin/sh -c #(nop) CMD [catalina.sh run]         0 B
2f84c3ab2483        6 days ago          /bin/sh -c #(nop) EXPOSE map[8080/tcp:{}]       0 B
be11664c34d5        6 days ago          /bin/sh -c set -x                               && curl -fSL "$TOMCAT_TGZ_   13.09 MB
df8dde32ea2f        2 weeks ago         /bin/sh -c #(nop) ENV TOMCAT_TGZ_URL=https://   0 B
2c367253b67d        2 weeks ago         /bin/sh -c #(nop) ENV TOMCAT_VERSION=8.0.21     0 B
5e5452f6e864        3 weeks ago         /bin/sh -c #(nop) ENV TOMCAT_MAJOR=8            0 B
e00f3a75a41b        3 weeks ago         /bin/sh -c gpg --keyserver pool.sks-keyserver   109.4 kB
8b95d6fd0d61        3 weeks ago         /bin/sh -c #(nop) WORKDIR /usr/local/tomcat     0 B
5d06ddb41dfc        3 weeks ago         /bin/sh -c mkdir -p "$CATALINA_HOME"            0 B
23d0b073332c        3 weeks ago         /bin/sh -c #(nop) ENV PATH=/usr/local/tomcat/   0 B
2a6c03336c25        3 weeks ago         /bin/sh -c #(nop) ENV CATALINA_HOME=/usr/loca   0 B
7f628ae52eec        3 weeks ago         /bin/sh -c apt-get update && apt-get install    164.5 MB
7428e160408e        3 weeks ago         /bin/sh -c #(nop) ENV JAVA_DEBIAN_VERSION=7u7   0 B
22df52eafda5        3 weeks ago         /bin/sh -c #(nop) ENV JAVA_VERSION=7u75         0 B
4d0d7acdf9db        3 weeks ago         /bin/sh -c apt-get update && apt-get install    676.1 kB
b7820d1ee4ee        3 weeks ago         /bin/sh -c apt-get update && apt-get install    44.34 MB
65688f7c61c4        3 weeks ago         /bin/sh -c #(nop) CMD [/bin/bash]               0 B
d338bb63f151        3 weeks ago         /bin/sh -c #(nop) ADD file:f9472dcedb28e889f7   122.8 MB
511136ea3c5a        22 months ago                                                       0 B

コマンドが長い場合は省略されてしまうので、その場合は --no-trunc オプションをつけることでコマンドを省略なしで表示できる。

$ docker history --no-trunc tomcat:8.0
IMAGE                                                              CREATED             CREATED BY                                                                                                                     SIZE
cef95d42a67e5abbc7d9d6b3622e89b1ee74c119253dbb4af1f284de105c39f3   6 days ago          /bin/sh -c #(nop) CMD [catalina.sh run]                                                                                        0 B
2f84c3ab24836342a40c92a64ecf89dccea1c239bcba680d114b7d06ea7df8b5   6 days ago          /bin/sh -c #(nop) EXPOSE map[8080/tcp:{}]                                                                                      0 B
be11664c34d591a675d1385ea58021c9d15b5ac0eb27303ba52b5c21d003d2b7   6 days ago          /bin/sh -c set -x                                                                                                              && curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz    && curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc    && gpg --verify tomcat.tar.gz.asc    && tar -xvf tomcat.tar.gz --strip-components=1    && rm bin/*.bat     && rm tomcat.tar.gz*   13.09 MB
df8dde32ea2f80831fb10c5131e29248b7a1d7ffaa2d48b6d7674f4518f4ea3a   2 weeks ago         /bin/sh -c #(nop) ENV TOMCAT_TGZ_URL=https://www.apache.org/dist/tomcat/tomcat-8/v8.0.21/bin/apache-tomcat-8.0.21.tar.gz       0 B
2c367253b67d0ef468d6f73ef28afa67c6de6e639cf8b8450685334a0c9261ff   2 weeks ago         /bin/sh -c #(nop) ENV TOMCAT_VERSION=8.0.21                                                                                    0 B
5e5452f6e864a3e28ce424ba7fd7d62e35a5a5a9240e1c489f3e6c41df5abf5a   3 weeks ago         /bin/sh -c #(nop) ENV TOMCAT_MAJOR=8                                                                                           0 B
e00f3a75a41b17a6c5b0ad9d0b179442abb03bdaedf96f3e335d5265602b1188   3 weeks ago         /bin/sh -c gpg --keyserver pool.sks-keyservers.net --recv-keys                                                                 05AB33110949707C93A279E3D3EFE6B686867BA6    07E48665A34DCAFAE522E5E6266191C37C037D42    47309207D818FFD8DCD3F83F1931D684307A10A5    541FBE7D8F78B25E055DDEE13C370389288584E7    61B832AC2F1C5A90F0F9B00A1C506407564C17A3    79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED    9BA44C2621385CB966EBA586F72C284D731FABEE    A27677289986DB50844682F8ACB77FC2E86E29AC    A9C5DF4D22E99998D9875A5110C01C5A2F6059E7    DCFD35E0BF8CA7344752DE8B6FB21E8933C60243    F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE    F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23   109.4 kB
8b95d6fd0d61c61b9ad7cc87d8be1e43da58a83d4379ab5d818385e87c68d56b   3 weeks ago         /bin/sh -c #(nop) WORKDIR /usr/local/tomcat                                                                                    0 B
5d06ddb41dfc068e783871f409d28eaca741043953780c55fc03b199f9fb1504   3 weeks ago         /bin/sh -c mkdir -p "$CATALINA_HOME"                                                                                           0 B
23d0b073332ce84e6015cd5884d4ddf7c178c2902145edaad1d938dfa502d85e   3 weeks ago         /bin/sh -c #(nop) ENV PATH=/usr/local/tomcat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin                  0 B
2a6c03336c25d7e548798577be2fcd322cd4599ff949bc78d1d42c8f7f1afc59   3 weeks ago         /bin/sh -c #(nop) ENV CATALINA_HOME=/usr/local/tomcat                                                                          0 B
7f628ae52eec9df9891177702bbd3c44b8442a5f087c69d660b21b688f1bc5fb   3 weeks ago         /bin/sh -c apt-get update && apt-get install -y openjdk-7-jre-headless="$JAVA_DEBIAN_VERSION" && rm -rf /var/lib/apt/lists/*   164.5 MB
7428e160408efe1e37d0710fba2a1777f7beab5411014eabde3a31c9980d3288   3 weeks ago         /bin/sh -c #(nop) ENV JAVA_DEBIAN_VERSION=7u75-2.5.4-2                                                                         0 B
22df52eafda5575c11112c744cda32d60c2ac9b70f97def69ad9f1355cb5d40b   3 weeks ago         /bin/sh -c #(nop) ENV JAVA_VERSION=7u75                                                                                        0 B
4d0d7acdf9dbc175ba89f5a32b08c78a7659ba988c276a92f39dc83d69818e69   3 weeks ago         /bin/sh -c apt-get update && apt-get install -y unzip && rm -rf /var/lib/apt/lists/*                                           676.1 kB
b7820d1ee4ee3aaad7d45bde22f0e2c79e97097384cd4321284a39c04bb4a1f4   3 weeks ago         /bin/sh -c apt-get update && apt-get install -y --no-install-recommends                                                                            ca-certificates                         curl                                    wget                && rm -rf /var/lib/apt/lists/*   44.34 MB
65688f7c61c4e8f3cce67714991d5a6d36d6bb3890e439cfcb5450db5ae9d530   3 weeks ago         /bin/sh -c #(nop) CMD [/bin/bash]                                                                                              0 B
d338bb63f1516c639f195833750da8b5b9bbf53a1124a8275088406f3a03724e   3 weeks ago         /bin/sh -c #(nop) ADD file:f9472dcedb28e889f7253817dcd6a0412c51a3fe0dc0fbea98041e426fea6ce0 in /                               122.8 MB
511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158   22 months ago                                                                                                                                      0 B

公式サイトや他のImageでDockerfileが公開されていないケースでも、Historyを見ることで色々と参考にすることができるだろう。

/* Responsive: yes */