aktualisierung

This commit is contained in:
Jesko Anschütz 2025-10-29 18:05:55 +01:00
parent 59e6b3a6f0
commit e9fbca0c44
2 changed files with 20 additions and 39 deletions

View file

@ -224,32 +224,3 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@fobiX:~#
```
## Der erste "*echte*" Container
wir wollen jetzt einen richtigen Webserver mit Docker aufsetzen :)
1. Container mit Webserver "nginx" starten: `docker run --name webdemo -d -p 8080:80 nginx`
Die Parameter hier bedeuten folgendes:
- `--name webdemo` optional - Gibt dem Container den angegebenen Namen. Wenn man den Namen nicht selbst festlegt, bekommt er einen zufälligen (z.B. "adoring_snyder")
- `-d` Lässt den Container im Hintergrund laufen ("d" steht für "detached")
- `-p 8080:80` verbindet den Port 8080 des Hosts mit dem Port 80 im Container
2. mit einem Browser nach http://fobiX.benbex.de:8080 surfen und schauen, was da zu sehen ist.
3. eine HTML-Datei in den Container kopieren: `docker cp webroot/test.html webdemo:/usr/share/nginx/html/index.html`
4. mit einem Browser nach http://fobiX.benbex.de:8080 surfen und schauen, was da zu sehen ist.
5. nachsehen, welche Container gerade laufen: `docker ps`
6. den Container stoppen: `docker stop webdemo`
7. nachsehen, was auf http://fobiX.benbex.de:8080 zu sehen ist
8. docker start webdemo
9. prüfen, ob die Seite wieder erreichbar ist
10. versuchen, mit `docker rm -f webdemo` den laufenden Container zu löschen
11. Container stoppen und löschen mit `docker stop webdemo ; docker rm webdemo`
12. Container neu starten mit `docker run --name webdemo -d -p 8080:80 nginx`
13. mit einem Browser nach http://fobiX.benbex.de:8080 surfen und schauen, was da zu sehen ist.
Du merkst: Container sind von flüchtiger Natur.
### Persistente Daten in Container einbinden
Du kannst beim Start des Containers schon ein Verzeichnis angeben, das in den Container gemounted wird. z.B.
docker run --name webdemo -v /root/docker-fobi/webroot:/usr/share/nginx/html -d -p 80:80 nginx

View file

@ -1,17 +1,28 @@
#!/bin/bash
i#!/bin/bash
set -e
# 1. Installation von tmux
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq
apt-get install -y ansible tmux vim
# sicherstellen, dass ignoreeof gesetzt ist
if ! grep -Fxq 'set -o ignoreeof' ~/.bashrc; then
echo 'set -o ignoreeof' >> ~/.bashrc
# ~/.bashrc härten: ignoreeof einmalig setzen
grep -Fxq 'set -o ignoreeof' ~/.bashrc || echo 'set -o ignoreeof' >> ~/.bashrc
SESSION="demo"
# Falls schon in tmux: zur Session wechseln oder neu anlegen
if [ -n "$TMUX" ]; then
tmux switch-client -t "$SESSION" 2>/dev/null || {
tmux new-session -Ad -s "$SESSION"
tmux switch-client -t "$SESSION"
}
exit 0
fi
# 2. Prüfen, ob bereits in tmux
if [ -z "$TMUX" ]; then
SESSION="demo"
# Außerhalb von tmux: vorhandene Session anhängen, sonst neu erstellen und dann anhängen
if tmux has-session -t "$SESSION" 2>/dev/null; then
tmux attach -t "$SESSION"
else
tmux new-session -d -s "$SESSION" bash -c '
clear
echo -e "gerade habe ich den Bildschirm gelöscht :)\n\n"
@ -21,6 +32,5 @@ if [ -z "$TMUX" ]; then
exec bash
'
tmux attach -t "$SESSION"
else
echo "Bereits in tmux."
fi