Dies ist eine alte Version des Dokuments!
Installation von Docker
Installation durch vorgefertigtes Skript
curl -fsSL https://get.docker.comd -o get-docker.sh
sh ./get-docker.sh
Einem Benutzer das Rechte geben docker zu nutzen
usermod -aG docker USERNAME
Erster Versuch
Welche Container laufen auf meinem Server
docker ps
Images auf auf Docker Hubsuchen. Hier wird nach einem NextCloud Image gesucht.
Welches Images soll ich nutzen?
Am besten das offizielle! Dafür den Filter verwenden.
Image downloaden uns sofort nutzen!
docker run -p 80:80 nginx
-p 80:80 sag, dass Port 80 (nummer eins) von meinem Server auf port 80 (nummer zwei) verweisen soll.
Docker-Compose
Man möchte jetzt nicht jeden einzelnen Container per Hand starten oder stoppen. Die Arbeit soll docker-compsoe übernehmen. Hier beschreiben wir ein der docker-compose.yml Datei welche Container wie gestartet werden sollen.
Im Beispiel versuche ich ein PiHole als Container zu installieren. Dafür nutze ich den Code vom offizellen PiHole Image vom Docker Hub. Die yaml Datei wurde von mir bearbeitet und zum besseren Verständnis Kommentiert.
nano docker-compose.yml
version: "3" # Kann gelöscht werden. Brauch Docker heute nicht mehr!
services:
pihole:
container_name: pihole
image: pihole/pihole:latest # Welches Images soll genutzt werden? latest steht hier für das aktuellste Image
# For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
# Hier stehen die Portweiterleitungen drinn. Die Ports werden allo vom Server eins zu eins an den Container durchgereicht
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp" # Wird nur benötigt wenn PiHole = DHCP Server ansonsten löschen
- "80:80/tcp"
environment: # Umgebungsvariablen die der Container benötigt
TZ: 'Europe/Berlin ' # Zeitzone
WEBPASSWORD: 'MEINPASSWORT' # Passwort für PiHole. Steht im Klartext!
# Volumes store your data between container upgrades
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
cap_add:
- NET_ADMIN # Wird nur benötigt wenn PiHole = DHCP Server ansonsten löschen
restart: unless-stopped
Containter hoch fahren
docker compose up -d
Das up steht für das starten der Container die alle in der docker-compose.yml stehen. Das -d steht für detached und gibt die Kommandozeile sofort wieder frei. Fall Probleme auftreten kann man durch das weglassen von -d den Container debuggen.
Portainer
Um Docker grafisch verwalten zu können nutze ich hier Portainer. Portainer steht hier natürlich auch als image auf Docker Hub zur verfügung.
Für Tools wie Portainer sollte man einen eigenen Order erstellen und darin eine eigene docker-compose.yml Datei schreiben.
nano tools/docker-compose.yml
# Docker-Compose-Datei für Portainer (https://hub.docker.com/r/portainer/portainer-ce). Antwortet auf Port 9000 des Servers
services:
portainer:
image: portainer/portainer-ce
ports:
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./portainer_data:/data
restart: always
Auf dem Browser Portainer öffnen mit http://SERVERIP:9000
und Portainer fertig konfigurieren.
\\
Updaten
Updaten der Container lässt sich durch einen docker Befehl durchfühen.
docker compose pull
Oder den Dockercontainer Watchtower installieren. Dieser fragt regelmäßig automatisch nach updates.
nano toos/docker-compose.yml
...
- ./portainer_data:/data
restart: always
services:
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock