Can I show data in specific layer from an docker image? And how?

Viewed 1763

Each docker image consists of a series of layers.

Ex: custom-elasticsearch:lastest

$: docker history custom-elasticsearch
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
5f14f49e0f6b        8 days ago          /bin/sh -c #(nop)  EXPOSE 9091/tcp 9200/tcp 9   0 B                
c1b5b6bdc8d8        8 days ago          /bin/sh -c /usr/share/elasticsearch/bin/plugi   3 MB               
a406ab7ba4ed        8 days ago          /bin/sh -c #(nop) COPY file:cf296a4961a04abc0   489 B              
6b0d046baaa8        8 days ago          /bin/sh -c #(nop) COPY file:81c04951307f0688f   83 B               
6f609da577b7        20 months ago       /bin/sh -c #(nop) CMD ["elasticsearch"]         0 B                
<missing>           20 months ago       /bin/sh -c #(nop) EXPOSE 9200/tcp 9300/tcp      0 B                
<missing>           20 months ago       /bin/sh -c #(nop) ENTRYPOINT &{["/docker-entr   0 B                
<missing>           20 months ago       /bin/sh -c #(nop) COPY file:d25889029dd34582c   672 B
//...

Can I show, copy file in image at fourth layer with id (6b0d046baaa8)? Thanks

2 Answers

Update:

There is a very useful tool called dive that allows you to navigate through the Docker layers and view the filesystem.

dlayer does this quite nicely:

For example, to see what is in each layer of docker.io/moby/buildkit:v0.10.3:

docker image pull docker.io/moby/buildkit:v0.10.3
docker save docker.io/moby/buildkit:v0.10.3 | dlayer

example output

$ docker save docker.io/moby/buildkit:v0.10.3 \
 | dlayer
(elided content...)

====================================================================================================
 1.6 kB      $ COPY examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ # buildkit
====================================================================================================
 1.6 kB      usr/bin/buildctl-daemonless.sh

====================================================================================================
 116 MB      $ COPY / /usr/bin/ # buildkit
====================================================================================================
  40 MB      usr/bin/buildkitd
  25 MB      usr/bin/buildctl
  21 MB      usr/bin/buildkit-runc
 5.5 MB      usr/bin/buildkit-qemu-aarch64
 3.9 MB      usr/bin/buildkit-qemu-arm
 3.9 MB      usr/bin/buildkit-qemu-ppc64le
 3.5 MB      usr/bin/buildkit-qemu-riscv64
 3.4 MB      usr/bin/buildkit-qemu-mips64
 3.3 MB      usr/bin/buildkit-qemu-mips64el
 3.0 MB      usr/bin/buildkit-qemu-s390x
 3.0 MB      usr/bin/buildkit-qemu-i386
Related