Das Team von Docassemble hat eine sehr übersichtliche Dokumentation zu Docker erstellt, die ich hier als weiterführende Quelle verlinke.
https://docassemble.org/docs/docker.html
Installation
Ich nutze gerne Debian, daher hier die Dokumentation zur Installation von Docker unter Debian. Unter Ubuntu läuft die Installation wahrscheinlich ohne das Hinzufügen eines weiteren Repositories.
https://docs.docker.com/install/linux/docker-ce/debian/
Docker Container starten/stoppen
Starten
ACHTUNG: wenn das Paket/der Container noch nicht auf dem System installiert ist, lädt Docker das Repository von Github runter und startet es danach direkt.
Hier Beispielhaft für das Paket Docassemble, einem System zur Dokumentenerstellung. Ist der Container auf dem System nicht verfügbar, wird es von https://github.com/jhpyle/docassemble
runtergeladen.
docker run -d -p 80:80 jhpyle/docassemble
-d: starte im Hintergrund als Daemon
-p: lausche auf Port x und leite den Traffic weiter an Container Port y
Es können weitere Konfigurationsparameter übergeben werden, wie z.B. ein persistentes Verzeichnis außerhalb des Docker Container, welches bestehen bleibt, wird der Container gelöscht. Auf diese Weise können auch Environment Variablen innerhalb des Docker Containers gestezt werden.
docker run --env-file=env.list -v dacerts:/usr/share/docassemble/certs -v dabackup:/usr/share/docassemble/backup -d -p 80:80 -p 443:443 jhpyle/docassemble
Auflisten der konfigurierten Docker Verzeichnisse
docker volume ls docker volume inspect dabackup
https://docassemble.org/docs/docker.html#persistent
Innerhalb des Containers wird beim Absetzen dieses Befehls folgendes Kommando ausgeführt:
/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
Stoppen
docker stop -t 60 <containerid>
-t: nach der angegebenen Zeit wird der Container hart beendet. Es wird nicht weiter darauf gewartet, dass die laufenden Dienste innerhalb des Containers sich beenden.
Laufende Docker Instanzen auflisten
docker ps
Über den Befehl werden auch die Container ID’s aufgelistet
Shell innerhalb eines Docker Containers starten
docker exec -t -i <containerid> /bin/bash
Innerhalb der Containerumgebung zeigt folgendes Kommando, welche Dienste gestartet sind
supervisorctl status