Image alpine:latest

Immer mal wieder stoße ich in Seminaren auf die Erklärungen zum Tag :latest. Und da ist gut, wenn mal eine Infoseite hat, welche die wichtigsten Fakten zusammenträgt.

Hinweis

Die folgende Zusammenstellung zum Image alpine:latest soll keine Besonderheiten der Alpine Image Technik darstellen, sondern sich der besonderen Analyse und Erkenntnis rund um Tagbezeichner widmen.

Eine mögliche Ausgabe in der Konsole: hier mit Tag alpine:latest als die Versionsnummer für Alpine 3.8.2 war!

docker run alpine - OLD
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
cd784148e348: Pull complete
Digest: sha256:46e71df1e5191ab8b8034c5189e325258ec44ea739bba1e5645cff83c9048ff1
Status: Downloaded newer image for alpine:latest
/ # cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.8.2
PRETTY_NAME="Alpine Linux v3.8"
HOME_URL="http://alpinelinux.org"
BUG_REPORT_URL="http://bugs.alpinelinux.org"
/ #

Container-Analyse (in separater Shell natürlich): docker ps -s (Größen anzeigen)

Die Ausgabe zeigt einen nur wenige Bytes großen Container, was normal ist für frisch erstellte Container.

Für eine aktuellere Version 3.19.1 von Alpine gelten die folgenden Aufrufe und man sollte die jeweilige SHA256 Prüfsummen nachvollziehen. In diesem Fall auch über die Build Pipeline Jenkins, wo sich die Prüfsummen für jeden erstellten Tag checken lassen.

Wir machen mal einen frischen latest (3.19.1) Pull:

Docker Image Pull alpine:latest mit Version 3.19.1
docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
4abcf2066143: Already exists
Digest: sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

Die Anregung für das Kommando findet sich auch auf dem Docker Hub.

Docker Hub Infos zum Alpine Image

Docker Hub Infos zum Alpine Image

Hier der passende Screenshot zur Version - also dem Tag:

Docker Hub Alpine Tag: latest (amd64)

Docker Hub Alpine Tag: latest (amd64)

Wir checken die Alpine-Version des alpine:latest Image über einen docker run Befehl.

Image nutzen und Alpine Version analysieren
docker run -it alpine
/ # cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.19.1
PRETTY_NAME="Alpine Linux v3.19"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
/ #

Eine Image Liste für Alpine:latest (hier: 3.19.1) zeigt:

Docker Image Liste mit –no-trunc für lpine:latest Analyse
docker image ls --no-trunc
REPOSITORY       TAG       IMAGE ID                                                                  CREATED         SIZE
...              latest    sha256:2c38ae17a4b9252b1f7a310e9485e68e5294c0a241d2a652808ac14fc0b83511   4 days ago      119MB
alpine           latest    sha256:05455a08881ea9cf0e752bc48e61bbd71a34c029bb13df01e40e3e70e0d007bd   3 months ago    7.38MB
...              latest    sha256:e9800d4dc15dd264ea6cd95b742cdf6b125373fb3a346ebf2af4a375fa7da3b7   8 months ago    1.11GB

Beim Löschen des Image sieht man die folgenden Infos.

Docker Image alpine:latest löschen
docker image rm alpine:latest
Untagged: alpine:latest
Untagged: alpine@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b
Deleted: sha256:05455a08881ea9cf0e752bc48e61bbd71a34c029bb13df01e40e3e70e0d007bd

Bei einer Docker Image Inspektion - siehe docker inspect - finden wir die beiden SHA256 Prüfsummen wie folgt zugewiesen:

Image Inspect alpine:latest (Auszug)
[
    {
        "Id": "sha256:05455a08881ea9cf0e752bc48e61bbd71a34c029bb13df01e40e3e70e0d007bd",
        "RepoTags": [
            "alpine:latest"
        ],
        "RepoDigests": [
            "alpine@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b"
        ],
        "Parent": "",

    }

]

Der Jenkins Job zeigt unter der (zum Zeitpunkt aktuellen) Adresse für den letzten erfolgreichen Build

Jenkins Amd64 Job Alpine latest zeigt sha256:05455a08881ea9cf0e752bc48e61bbd71a34c029bb13df01e40e3e70e0d007bd (Voila)

SHA256 Prüfsumme für letzten erfolgreichen Build für alpine:latest

SHA256 Prüfsumme für letzten erfolgreichen Build für alpine:latest

Dieselben Prüfsummen zeigen (zum Zeitpunkt) die image-tags

  • alpine:3.19.1

  • alpine:3.19

  • alpine:3

  • alpine:latest

Und genau so findet man die Tags auch in der Docker Hub Doku zum Alpine Image (s.o.) aufgelistet!