====== whoami Service ======
===== erster Versuch =====
starten:
docker container run -d -P --name port_zufall containous/whoami
Resourcenverbrauch anzeigen:
docker container stats
Container anzeigen:
docker container ps
-> zeigt sowas an wie:
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
-> Portnummer rauskopieren
Dienst ansprechen:
curl http://localhost:32768
oder im Browser http://localhost:32768
Dienst stoppen:
docker container stop port_zufall
docker container ps -a
Dienst starten:
docker container start port_zufall
docker container ps
Logs anzeigen:
docker container logs port_zufall
Instanz löschen:
docker container stop port_zufall
docker container rm port_zufall
===== mit Port 80 starten =====
docker container run -d -p 80:80 --name port_80 containous/whoami
Dienst ansprechen:
curl http://localhost
oder im Browser http://localhost
====== 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
[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
systemctl enable --now my_container.service
systemctl status my_container.service
-> systemd sieht den docker-run Prozess, aber nicht die Prozesse im Container.