Skopeo – Docker Container mit Verwalten

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"
  ]
}