diff --git a/README.md b/README.md index 27c1ad4..e7147f9 100644 --- a/README.md +++ b/README.md @@ -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 - - diff --git a/scripts/00-Beispiel-1.sh b/scripts/00-Beispiel-1.sh index 2a61498..55db2c6 100644 --- a/scripts/00-Beispiel-1.sh +++ b/scripts/00-Beispiel-1.sh @@ -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 +