Post

docker-compose.yaml mit Autocompose erzeugen

docker-compose.yaml aus laufenden Containern erzeugen, die z.B. in Portainer konfiguriert wurden.

Ausgangslage

Meine Docker Umgebung läuft auf den Hosts vor sich hin. Die Verwaltung erledige ich meist mit Portainer.
Für jeden Container existiert ein docker-compose.yaml File, da ich die Container in der Regel aus der Shell starte.
Für jeden Container ? Nein, ausgerechnet mein pihole Container ist anders. Der ist im Portainer konfiguriert, die docker-compose.yaml Datei im zugehörigen Projekt-Ordner hat nicht wirklich etwas mit der laufenden Konfiguration zu tun.
Da ich plane, die Netzwerkkonfiguration des pihole Containers zu ändern, möchte ich sicherstellen das auch nach der Änderung noch alles funktioniert. Ich brauche also eine docker-compose.yaml der aktuell laufenden Konfiguration.
Im Internet stößt man relativ schnell auf “docker-autocompose” als Lösung. Der erste Versuch, einfach ein fertiges Docker-Image zu starten mit

1
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock red5d/docker-autocompose <container-name-or-id

schlug fehl, da mein Raspberry PI4 keines der fertigen Images nutzen wollte.
Also habe ich mir zunächst das Github Repo von

https://github.com/Red5d/docker-autocompose.git

herutergeladen, dann den Container mit

1
docker build -t red5d/docker-autocompose .

gebaut und schließlich die docker-compose.yaml mit dem Befehl

1
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock red5d/docker-autocompose pihole

erzeugt. Beschrieben wird das Vorgehen auf https://hub.docker.com/r/red5d/docker-autocompose. Danke für die tolle Lösung an red5d.

This post is licensed under CC BY 4.0 by the author.