Hier für mich selbst eine kleine Erinnerungshilfe, wenn ich auf einem bestehenden Docker-Host ein zusätzliches Docker-Abbild dauerhaft installieren und laufen lassen möchte.
Vorbedingungen
- Ubuntu Server.
- Docker ist bereits installiert.
Schritte
Anhand des Beispiels von syslog-ng
(Einem Syslog-Server) sind nachfolgende Schritte beschrieben.
- Docker-Image downloaden:
sudo docker pull linuxserver/syslog-ng
aufrufen.
- Volume erstellen:
sudo docker volume create ZetaSyslogNg
.
- Docker-Image starten:
docker run -d --name=syslog-ng -e PUID=1000 -e PGID=1000 -e TZ=Etc/UTC -p 514:5514/udp -p 601:6601/tcp -p 6514:6514/tcp -v ZetaSyslogNg:/config -v ZetaSyslogNg:/log
#optional --restart unless-stopped lscr.io/linuxserver/syslog-ng:latest
.
Ggf. ist Schritt 1 auch unnötig.
Im konkreten Fall meines syslog-ng
-Images habe ich noch folgende Aktionen gemacht:
sudo docker exec -it syslog-ng /bin/bash
aufgerufen, um eine Shell in dem laufenden Image zu öffnen.
- Darin dann
chmod 777 /var/log
aufgerufen, damit Rechte für erstellen der Nachrichtendatei hat.
- Anschließend dann, immer noch innerhalb des Images,
tail -f /var/log/messages
aufgerufen, um neue Lognachrichten zu sehen.
Ggf. muss ich nach jedem Aktualisieren des Docker-Images obige Befehle nochmals aufrufen.
Im Fall von einem postgres
-Image, bin ich folgendermaßen vorgegangen, um das Image zu starten:
docker run -d --name postgres -e POSTGRES_PASSWORD=MyPassword -e PGDATA=/var/lib/postgresql/data/pgdata -v ZetaPostgres:/var/lib/postgresql/data -p 5432:5432 --restart unless-stopped postgres
Anschließend habe ich von meinem lokalen Rechner via pgAdmin die Verbindung getestet.