home-harmening:docker:installation

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




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.

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.


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 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