Skopeo
Das CLI Tool Skopeo ist ein nützlicher Helfer, wenn es um Arbeiten mit Images insbesondere das Kopieren geht.
Installation
Die Installation unter Manjaro erfolgt mit yay oder Pacman.
yay -S skopeo
bzw. mit pacman
pacman -S skopeo
Beispiele
Die Anwendungsmöglichkeiten sind vielfältig. Ich werde diesen Artikel später erweitern.
Kopieren eines Containerimage
Als Beispiel verwende ich hier eine sehr einfache lokale Registry, um Kopien von Images zu hosten. In diese Registry sollen zur Anschauung ein Image kopiert werden.
Setup lokale Registry
Zunächst benötigen wir für das Beispiel eine lokale Registry. Diese ist mit Docker schnell aufgesetzt. Die lokale Registry lauscht auf dem Port 5000.
docker container run -d --name registry.localhost -v local_registry:/var/lib/registry --restart always -p 5000:5000 registry:2
Nun kann man unter localhost:5000 die Registry verwenden. Um in die Logs zu schauen verwende ich lazydocker. Dieses ermöglich mir einen einfachen Einblick in den Container und die Logausgaben. Weitere coole Features kann man unter lazydocker auf GitHub nachlesen.
Image mit Skopeo kopieren
Mit dem copy Parameter können Images bequem von einer Registry zu einer anderen kopiert werden. In dem Beispiel wollen wir das offizielle Nginx Image in die lokale (insecure registry) kopieren. Da es eine unsichere Registry ist und nur HTTP spricht, muss der Parameter –dest-tls-verify=false gesetzt sein, da sonst keine Verbindung mit dem HTTP Protokoll zu Satnde kommt.
skopeo copy --dest-tls-verify=false docker://nginx:latest docker://registry.localhost:5000/nginx:latest
Kopie von Skopeo überprüfen
Das neu kopierte Image kann schnell mit curl überprüft werden.
curl -s localhost:5000/v2/_catalog | jq
{
"repositories": [
"nginx"
]
}