Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:docker:hello_docker_service

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:docker:hello_docker_service [2026/01/25 13:47] – angelegt ingo_wichmannadmin_grundlagen:docker:hello_docker_service [2026/05/24 12:28] (aktuell) – ingo_wichmann
Zeile 2: Zeile 2:
 ===== erster Versuch ===== ===== erster Versuch =====
 starten: starten:
-  docker run -d -P --name port_zufall containous/whoami +  docker container run -d -P --name port_zufall containous/whoami 
-anzeigen: +Container anzeigen: 
-  docker ps+  docker container ps
 -> zeigt sowas an wie: <file> -> zeigt sowas an wie: <file>
 CONTAINER ID   IMAGE               COMMAND     CREATED          STATUS          PORTS                                     NAMES CONTAINER ID   IMAGE               COMMAND     CREATED          STATUS          PORTS                                     NAMES
 b575343f885c   containous/whoami   "/whoami"   11 seconds ago   Up 10 seconds   0.0.0.0:32768->80/tcp, :::32768->80/tcp   port_zufall b575343f885c   containous/whoami   "/whoami"   11 seconds ago   Up 10 seconds   0.0.0.0:32768->80/tcp, :::32768->80/tcp   port_zufall
 </file> </file>
-  docker container stats +-> Portnummer rauskopieren (( 
--> zeigt Resourcenverbrauch+  port=$(docker container inspect port_zufall | jq -r '.[0].NetworkSettings.Ports."80/tcp".[0].HostPort') 
 +))
  
 Dienst ansprechen: Dienst ansprechen:
-  curl http://localhost:32768+  curl http://localhost:$port 
 +oder im Browser http://localhost:32768 
 Dienst stoppen: Dienst stoppen:
-  docker stop port_zufall +  docker container stop port_zufall 
-  docker ps -a+  docker container ps -a
 Dienst starten: Dienst starten:
-  docker start port_zufall +  docker container start port_zufall 
-  docker ps+  docker container ps
 Logs anzeigen: Logs anzeigen:
-  docker logs port_zufall+  docker container logs port_zufall
 Instanz löschen: Instanz löschen:
-  docker stop port_zufall +  docker container stop port_zufall 
-  docker rm port_zufall+  docker container rm port_zufall
  
 ===== mit Port 80 starten ===== ===== mit Port 80 starten =====
-  docker run -d -p 80:80 --name port_80 containous/whoami+  docker container run -d -p 80:80 --name port_80 containous/whoami
 Dienst ansprechen: Dienst ansprechen:
   curl http://localhost   curl http://localhost
-Instanz löschen: +oder im Browser http://localhost
-  docker stop port_80 +
-  docker rm port_80+
  
 +====== Aufgabe: BentoPDF ======
 +Nutze die obigen Befehle um einen Container aus dem Image ''bentopdfteam/bentopdf:latest'' zu starten. Konvertiere ein Bild aus dem WWW in ein PDF. 
 +
 +Was passiert, wenn Du den Docker-Service neu startest oder das System neu startest: läuft der Container noch?
 +
 +====== Container rebootfest machen ======
 +===== mit Docker =====
 +
 +RestartPolicy anzeigen: (( https://docs.docker.com/engine/containers/start-containers-automatically/ ))
 +  docker inspect my_container -f "{{ .HostConfig.RestartPolicy.Name }}"
 +
 +++++ podman |
 +Podman bringt einen Systemd-Service mit, der alle Container startet, die ''restart-policy=always'' gesetzt haben:
 +  systemctl enable podman-restart.service
 +++++
 +==== bereits laufende Container reboot fest machen ====
 +  docker update --restart=always my_container
 +
 +==== neue Container rebootfest starten ====
 +  docker container run -d  --restart=always -p 80:80 --name my_container containous/whoami
 +
 +===== mit Systemd =====
 +++++ podman |
 +Podman kann unit files generieren:
 +  podman generate systemd --new --name my_container
 +++++
 +  systemctl edit --full --force my_container.service
 +<file txt /etc/systemd/system/my_container.service>
 +[Unit]
 +Description=My container
 +Requires=docker.service
 +After=docker.service
 +
 +[Service]
 +Restart=always
 +ExecStart=/usr/bin/docker run \
 +  --rm \
 +  --name %n \
 +   -p 80:80 \
 +  --log-driver=journald \
 +  --log-opt tag=%n \
 +  containous/whoami
 +ExecStop=/usr/bin/docker stop -t 2 %n
 +SuccessExitStatus=2
 +
 +[Install]
 +WantedBy=default.target
 +</file>
 +  systemctl enable --now my_container.service
 +  systemctl status my_container.service
 +-> systemd sieht den docker-run Prozess, aber nicht die Prozesse im Container. 
admin_grundlagen/docker/hello_docker_service.1769348859.txt.gz · Zuletzt geändert: 2026/01/25 13:47 von ingo_wichmann