[Docker] 이미지 history

목차

참고

✅ 이미지 history

Docker 이미지를 받아서 사용하다보면 은근, 해당 이미지가 어떻게 생성 됐는지, 어떤 명령어를 사용했는지 확인해봐야 할때가 있습니다. Docker 에서는 history 명령어를 이용해 해당 이미지가 어떤 명령어를 이용해 이미지가 생성 됐는지 확인할 수 있는 기능을 제공합니다.

저 같은 경우는 제대로 작동되지 않는 빌드된 이미지에 대한 디버깅용으로 사용을 많이 했었습니다.

✅ docker history 명령어

기본 명령어

docker history 명령어를 이용해 이미지 명과 태그를 명시하면 이미지 history 결과를 볼 수 있습니다.

docker history <이미지명:태그>

history 명령어의 수행결과로 각 이미지 레이어 별로 사용된 명령어 , 레이어의 크기 , 생성시각 , comment 들을 확인할 수 있습니다.

❯ docker history tomcat:9.0.64-jre17
IMAGE CREATED CREATED BY SIZE COMMENT
4bd7bf12a7b2 2 years ago /bin/sh -c #(nop) CMD ["catalina.sh" "run"] 0B
<missing> 2 years ago /bin/sh -c #(nop) EXPOSE 8080 0B
<missing> 2 years ago /bin/sh -c set -eux; nativeLines="$(catalin… 0B
<missing> 2 years ago /bin/sh -c set -eux; apt-get update; xargs… 7.66MB
<missing> 2 years ago /bin/sh -c #(nop) COPY dir:01f4a9545d8608ec4… 18.6MB
<missing> 2 years ago /bin/sh -c #(nop) ENV TOMCAT_SHA512=38392b6… 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV TOMCAT_VERSION=9.0.64 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV TOMCAT_MAJOR=9 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV GPG_KEYS=48F8E69F6390… 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV LD_LIBRARY_PATH=/usr/… 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV TOMCAT_NATIVE_LIBDIR=… 0B
<missing> 2 years ago /bin/sh -c #(nop) WORKDIR /usr/local/tomcat 0B
<missing> 2 years ago /bin/sh -c mkdir -p "$CATALINA_HOME" 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV PATH=/usr/local/tomca… 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV CATALINA_HOME=/usr/lo… 0B
<missing> 2 years ago /bin/sh -c echo Verifying install ... &&… 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV JAVA_HOME=/opt/java/o… 0B
<missing> 2 years ago /bin/sh -c set -eux; ARCH="$(dpkg --prin… 140MB
<missing> 2 years ago /bin/sh -c #(nop) ENV JAVA_VERSION=jdk-17.0… 0B
<missing> 2 years ago /bin/sh -c apt-get update && DEBIAN_FRON… 50MB
<missing> 2 years ago /bin/sh -c #(nop) ENV LANG=en_US.UTF-8 LANG… 0B
<missing> 2 years ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 2 years ago /bin/sh -c #(nop) ADD file:20805b983efd5443e… 69.2MB

명령어 모든 내용 보기 --no-trunc

--no-trunc 옵션을 추가해주면 위에서 생략된 명령어 내용들을 전부 보여줍니다.

docker history <이미지명:태그>  --no-trunc 
❯ docker history tomcat:9.0.64-jre17 --no-trunc
IMAGE CREATED CREATED BY SIZE COMMENT
sha256:4bd7bf12a7b2aee63bf3a8de4ff152b5344226fbb0a7c2fe71fd8af4e86b2b1a 2 years ago /bin/sh -c #(nop) CMD ["catalina.sh" "run"] 0B
<missing> 2 years ago /bin/sh -c #(nop) EXPOSE 8080 0B
<missing> 2 years ago /bin/sh -c set -eux; nativeLines="$(catalina.sh configtest 2>&1)"; nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"; nativeLines="$(echo "$nativeLines" | sort -u)"; if ! echo "$nativeLines" | grep -E 'INFO: Loaded( APR based)? Apache Tomcat Native library' >&2; then echo >&2 "$nativeLines"; exit 1; fi 0B
<missing> 2 years ago /bin/sh -c set -eux; apt-get update; xargs -rt apt-get install -y --no-install-recommends < "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt"; rm -rf /var/lib/apt/lists/* 7.66MB
<missing> 2 years ago /bin/sh -c #(nop) COPY dir:01f4a9545d8608ec42f549bf2df78d3acf563ff4180c7fd9ac753fba68a0b6df in /usr/local/tomcat 18.6MB
<missing> 2 years ago /bin/sh -c #(nop) ENV TOMCAT_SHA512=38392b651fabe706fb0524c52849601299494178010bb8077af383232c20bbbda1aec4ab8898adb2cc37c07583ff0e9d3c7038ce55a22bc68c3641641b47fd1a 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV TOMCAT_VERSION=9.0.64 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV TOMCAT_MAJOR=9 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV GPG_KEYS=48F8E69F6390C9F25CFEDCD268248959359E722B A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib 0B
<missing> 2 years ago /bin/sh -c #(nop) WORKDIR /usr/local/tomcat 0B
<missing> 2 years ago /bin/sh -c mkdir -p "$CATALINA_HOME" 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV PATH=/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV CATALINA_HOME=/usr/local/tomcat 0B
<missing> 2 years ago /bin/sh -c echo Verifying install ... && echo java --version && java --version && echo Complete. 0B
<missing> 2 years ago /bin/sh -c #(nop) ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 0B
<missing> 2 years ago /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='b32bf4e18a0befea32c0ff377da7a1753b91477617a9921ceb3dee6964d2799b'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.3%2B7/OpenJDK17U-jre_aarch64_linux_hotspot_17.0.3_7.tar.gz'; ;; armhf|arm) ESUM='fda34743f1ad8b629f42773f6519e87d13876d4b10f98b76cd47b1aa9ad18572'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.3%2B7/OpenJDK17U-jre_arm_linux_hotspot_17.0.3_7.tar.gz'; ;; ppc64el|powerpc:common64) ESUM='257325f38546ce34645f6e8d7e566df401c97a9ae5f107583f9ac71f0f1b04e9'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.3%2B7/OpenJDK17U-jre_ppc64le_linux_hotspot_17.0.3_7.tar.gz'; ;; s390x|s390:64-bit) ESUM='6790e3995a7fb8db99974d213f750bfd1631bfc0dad9946334be34d7b78fdbee'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.3%2B7/OpenJDK17U-jre_s390x_linux_hotspot_17.0.3_7.tar.gz'; ;; amd64|i386:x86-64) ESUM='446b1ac5504d51c2ff9b0cccff079be3ce800cf8c3a3f13bab07f2656aa1fd27'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.3%2B7/OpenJDK17U-jre_x64_linux_hotspot_17.0.3_7.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p /opt/java/openjdk; cd /opt/java/openjdk; tar -xf /tmp/openjdk.tar.gz --strip-components=1; rm -rf /tmp/openjdk.tar.gz; 140MB
<missing> 2 years ago /bin/sh -c #(nop) ENV JAVA_VERSION=jdk-17.0.3+7 0B
<missing> 2 years ago /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales binutils && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen en_US.UTF-8 && rm -rf /var/lib/apt/lists/* 50MB
<missing> 2 years ago /bin/sh -c #(nop) ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 0B
<missing> 2 years ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 2 years ago /bin/sh -c #(nop) ADD file:20805b983efd5443e34ebdfb7795010e5684eb1ca1ffea30a3e61e0089c0eee8 in / 69.2MB

Share