Main /

Docker Fuer Beginner

Allgemein

Knowledge Base

Virtualisierung Emulation

Technik und Wissen

Community

Privat

%center%[[http://validator.w3.org/check?uri=referer|http://www.w3.org/Icons/valid-xhtml10.png]]%%

Docker Fuer Beginner

Docker für Beginner

"Docker vereinfacht die Bereitstellung von Anwendungen." Früher musste man php kompliziert installieren, heute geht man zu hub.docker.com und besorgt sich das aktuelle php-7.4 in einer Docker-Umgebung. Ein Update beschränkt sich häufig auf das Incrementieren der Zahl hinter dem Container von dem der eigene Container abhängt.

Ich lege die Linkliste mal nach oben.

Link Liste

Jetzt ans eingemachte, das einzige was es braucht, auf dem Rechner, zum Rumspielen mit Docker, ist etwas Platz, ein bisschen RAM und Zeit.

Gleich vorweg, selbst mit 30GB SSD und 8GB RAM kann Docker prima betrieben werden.

Ein Docker Container ist wie ein eigener Computer der in Deinem Computer läuft.

Fangen wir einfach mal an, das andere kommt dann sehr schnell.

Also einfach mal folgendes kopieren, immer ohne '#'

 # echo "echo 'Hallo'" >hello.sh

 # cat >Dockerfile <<EOF
 FROM bash:4.4.23
 ADD hello.sh /
 EOF

Es sollte jetzt ein Dockerfile im aktuellen Verzeichnis liegen. Daraus machen wir einen Container

 # docker build .
 Sending build context to Docker daemon  3.072kB
 Step 1/2 : FROM bash:4.4.23
  ---> 5e400cf6a320
 Step 2/2 : ADD hello.sh /
  ---> 1e0f7f87ece9
 Successfully built 1e0f7f87ece9

Die Hash Nummern werden bei euch anders aussehen.

Wenn wir jetzt den ersten Hash starten

 # docker run -it 5e400cf6a320 bash
 bash-4.4#

landen wir im Docker. Es ist ein abgespecktes Linux, um den Container klein zu halten ist meist nur das vorhanden, was wirklich gebraucht wird, also kein Emacs, nicht mal vi, kein Midnight Commander ...

Einmal kurz umschauen mit `ls -al` und `cd ...` es ist ein Linux.

Aber ich habe doch die 'hello.sh' eingefügt, wieso ist die nicht da.

Ganz einfach, wir haben den 1. Container gestartet, das enthält nur die Plain bash.

 # exit

Um diesen Docker zu verlassen und gleich den 2. Hash nutzen.

 # docker run -it 1e0f7f87ece9 bash
 bash-4.4#

wieder landen wir im Docker, aber diesmal befördert ein `ls -al` die Datei hello.sh zu Tage.

 #exit

Da Hashes aber Mist sind, tagged man das Image.

 # docker build -t test/meinContainer:0.0.1 .

und schon kann man über den Tag-Namen auf den eigenen Container zugreifen

 # docker run -it test/meinContainer:0.0.1 bash

Wenn wir jetzt dem Dockerfile ein `CMD ["/hello.sh"]` mitgeben, kann man das "bash" am Ende weglassen, der Docker wird kurz gestartet und wieder beendet.

Ich würde als output erwarten: /usr/local/bin/docker-entrypoint.sh: line 11: /hello.sh: Permission denied

Weil die Ausführungsrechte nicht gesetzt sind, wir müssen unserem Dockerfile noch ein `RUN chmod +x /hello.sh` spendieren.

Dann wieder bauen und starten

 # docker run -it test/meinContainer:0.0.1
 Hallo

Das aktuelle Dockerfile sollte wie folgt aussehen:

 FROM bash:4.4.23
 ADD hello.sh /
 RUN chmod +x /hello.sh
 CMD ["/hello.sh"]

Viel Spaß beim weiteren rumspielen...

p.s. Beim Rumdaddeln mit Docker entstehen sehr sehr viele Container/Images, die meisten werden auch nicht mehr gebraucht, belegen aber Unmengen an Plattenplatz. Um die alle wegzuputzen:

 # docker system prune -a -f

Das kloppt alles weg, was aktuell nicht gebraucht wird oder was gerade nicht läuft.

TBC...

Frische Änderungen (All) | Edit SideBar Zuletzt geändert am 26.05.2020 09:29 Uhr Seite Bearbeiten | Seitenhistorie
Powered by PmWiki