Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
admin_grundlagen:docker:hello_docker_service [2026/01/25 13:47] ingo_wichmann angelegt |
admin_grundlagen:docker:hello_docker_service [2026/02/25 20:40] (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: | + | Resourcenverbrauch anzeigen: |
| - | docker ps | + | docker container stats |
| + | Container anzeigen: | ||
| + | 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 | + | |
| Dienst ansprechen: | Dienst ansprechen: | ||
| curl http://localhost:32768 | curl http://localhost:32768 | ||
| + | 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 }}" | ||
| + | |||
| + | ==== 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 ===== | ||
| + | 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. | ||