From f29a468a6c286009ee1c9db9c633c530b3b9cef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Posp=C3=AD=C5=A1ek?= Date: Wed, 19 Jun 2019 14:29:05 +0200 Subject: [PATCH 1/2] Update slides.md --- slides.md | 53 ++++++++++++++++++++++++----------------------------- 1 file changed, 24 insertions(+), 29 deletions(-) diff --git a/slides.md b/slides.md index 5e842aa..19c3105 100644 --- a/slides.md +++ b/slides.md @@ -23,7 +23,6 @@ Die Werbung verspricht: ![](images/docker-command-daemon-deck.png) -- **`~$ docker version`
** #### Bestimmung der Version @@ -49,7 +48,6 @@ Git commit (server): c78088f ![](images/docker-command-registry-deck.png) -- **`~$ docker search`** ####
 Auf der Suche nach dem goldenen Image @@ -72,7 +70,6 @@ centos The official build of CentOS. 442 [OK] * Versionen (z.B. hier von CentOS) werden nicht angezeigt, nur das Repository * Besser zum Suchen: [Docker Hub](https://registry.hub.docker.com/search) -- **`~$ docker pull`** ####
 Wir brauchen das Image lokal um es zu verwenden @@ -90,7 +87,6 @@ $ docker pull redis:latest *** * **Wichtig:** Tag mit angeben! Sonst wird das gesamte Repository gezogen
(z.B. Ubuntu 12.04/12.10/13.04/13.10/14.04 >> 1GB) -- **`~$ docker images | inspect`** ####
Die lokalen Images ansehen @@ -108,7 +104,7 @@ $ docker inspect 70214e5d0a90 "Comment": "", ... ``` -- + **`~$ docker rmi`** ####
 Ein lokales Image entfernen @@ -126,7 +122,6 @@ $ docker rmi 70214e5d0a90 * D.h. das Image lebt erstmal weiter, auch wenn der Container schon weg ist. * --force hilft im Notfall. -- **`~$ docker history`** #### Zeig die Befehlshistorie des Images an ```bash @@ -147,7 +142,6 @@ c2a5714574ba 35 hours ago /bin/sh -c groupadd -r tomcat -g 4242 && ![](images/docker-command-images-deck.png) -- **`~$ docker run`** ####
 Das wichtigste Kommando: Container starten! @@ -167,7 +161,7 @@ CTRL+P CTRL+Q zum detachen der shell * Im Image ist optional ein Kommando integriert. * Im Fall der Bash hier: Ein `exit` oder `CTRL-D` beendet die Shell, d.h. den Prozess, d.h. den Container. * So ist der Container aber noch laufigfähig vorhanden! -- + ### Was bedeutet ein `docker start`? * Müssen wir hier nicht erklären, was wirklich passiert ist? @@ -181,7 +175,7 @@ CTRL+P CTRL+Q zum detachen der shell - Volumen mounten - Ports Freigeben - Prozess starten mit einem bestimmten Nutzer -- + **`~$ docker ps`** ####
 Container anzeigen @@ -203,11 +197,11 @@ e6aa98c81a41 * Der Status ist leider schlecht grep-bar. * Es existieren verschiedene Filtermöglichkeiten (`docker ps --help`) -- + **`~$ docker ps | attach`**
 #### Sich mit interaktiven Containern verbinden -- + **`~$ docker rm
`** #### Alte Container abräumen @@ -224,7 +218,7 @@ e6aa98c81a41 * Funktioniert nur mit abgelaufenen Containern (außer dann mit --force) * Besser: Beim run direkt --rm mitgeben -- + **`~$ docker logs`** ####
 Ausgabe von Container anschauen @@ -241,7 +235,7 @@ exit * `-t == timestamps` * `-tail == nur die letzten x Zeilen anzeigen` -- + **`~$ docker events`** 
#### Ereignisse des Docker Daemons ansehen @@ -254,7 +248,7 @@ $ docker events *** * Keine Besonderheiten. Nett zum Kennenlernen/Debuggen. * Sehr wichtig für Discovery-Mechanismen (l8r) -- + **`~$ docker diff
`** #### Unterschiede im Filesystem anzeigen @@ -276,7 +270,7 @@ D /etc/sysctl.conf ``` *** * Keine Besonderheiten. Interessantes Debugging-Werkzeug. -- + **`~$ docker top`** ####
Prozessdetails eines Containers anzeigen @@ -326,7 +320,7 @@ CTRL+P, CTRL+Q Wenn wir apachectl -D FOREGROUD nutzen klappt es! ``` -- + **`~$ docker commit`** ####
Den Dateisystem-Stand festhalten @@ -354,7 +348,7 @@ REPOSITORY TAG IMAGE ID CREATED --- ## Weiter gehts -- + **`~$ docker tag`** ####
 Namen für Images @@ -405,8 +399,9 @@ vagrant@docker-workshop:~$ curl http://127.0.0.1:8000/ `docker ps, docker top, docker inspect` --- -**`~$ docker stop | kill`**
 -#### Container stoppen + +**`~$ docker stop | kill`** +####
 Container stoppen Sendet SIGTERM und/oder SIGKILL an einen Container-Prozess *** @@ -444,7 +439,7 @@ bfb8b5a2ad34 4 days ago /bin/sh -c #(nop) ADD file:a889e7d86acdb *** Interessant ist die SIZE-Spalte, welche Aktion wie viel zum FS-Volumen beigetragen hat ( Squashing *) -- + **`~$ docker run | VOLUMES`**
 #### Mounten von Verzeichnissen in Container @@ -494,7 +489,7 @@ ADD html/index.html /var/www/html/index.html ENTRYPOINT ["/usr/sbin/apache2"] CMD ["-D", "FOREGROUND"] ``` -- + **`~$ docker build`** ####
Definierte Container-Images bauen @@ -545,9 +540,9 @@ CONTAINER ID IMAGE COMMAND CREATED ~$ docker stop web && docker rm web ``` -- -**`~$ docker port
`** -#### “Anonyme“ Port-Mappings anzeigen + +**`~$ docker port`** +####
 “Anonyme“ Port-Mappings anzeigen Wenn keine expliziten Port-Mappings mit –p angegeben werden, verwendet Docker freie High-Ports. Das Port-Kommando zeigt diese an. @@ -566,7 +561,7 @@ c2bbd009cf3b infrabricks/apache2:latest /usr/sbin/apache2 -D 14 secon ``` *** Keine Besonderheiten -- + **`~$ docker save | load`**
 #### Container-Images als Tarballs transportieren Speichert die FS-Layer eines Images als Tarball. @@ -590,7 +585,7 @@ Bringt erstaunlicherweise die Prozessorlast des Hosts hoch. ### Übung: Save, danach mit rmi images löschen und
laden. -- + **`~$ docker push
`** #### Ein Image in eine (private) Registry hochladen @@ -614,7 +609,7 @@ Image 96864a7d2df3 already pushed, skipping ffdb1d64ba4d: Image successfully pushed Pushing tag for rev [ffdb1d64ba4d] on {http://127.0.0.1:5000/v1/repositories/infrabricks/apache2/tags/latest} ``` -- + ### Docker Push/Pull ```bash $ docker login @@ -624,7 +619,7 @@ $ docker push "infrabricks/apache2:latest" *** * `docker pull /:` -- + ### Sharing ![](images/gift_of_sharing_colorpg.jpg) @@ -637,7 +632,7 @@ $ docker push "infrabricks/apache2:latest" ![](images/docker-command-images-deck.png) -- + **`~$ docker run --link
`** #### Container miteinander verknüpfen Ein Container wird mit einem bereits laufenden Container „verknüpft“ – der neue Container erhält Environmentvariablen und Netzwerk-Freischaltungen From 8dfa125ccc48f5234ec516839eba60a7da4b65e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Posp=C3=AD=C5=A1ek?= Date: Wed, 19 Jun 2019 14:40:38 +0200 Subject: [PATCH 2/2] try to get Github to display the formatting correctly The changed formattings wouldn't display correctly on github --- slides.md | 92 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 49 insertions(+), 43 deletions(-) diff --git a/slides.md b/slides.md index 19c3105..3e6ab31 100644 --- a/slides.md +++ b/slides.md @@ -48,8 +48,8 @@ Git commit (server): c78088f ![](images/docker-command-registry-deck.png) -**`~$ docker search`** -####
 Auf der Suche nach dem goldenen Image +**`~$ docker search`
** +#### Auf der Suche nach dem goldenen Image *** ```bash @@ -70,8 +70,8 @@ centos The official build of CentOS. 442 [OK] * Versionen (z.B. hier von CentOS) werden nicht angezeigt, nur das Repository * Besser zum Suchen: [Docker Hub](https://registry.hub.docker.com/search) -**`~$ docker pull`** -####
 Wir brauchen das Image lokal um es zu verwenden +**`~$ docker pull`
** +#### Wir brauchen das Image lokal um es zu verwenden * Download eines Repositories (oder Teilen davon) von der öffentlichen Docker-Registry. *** @@ -87,8 +87,8 @@ $ docker pull redis:latest *** * **Wichtig:** Tag mit angeben! Sonst wird das gesamte Repository gezogen
(z.B. Ubuntu 12.04/12.10/13.04/13.10/14.04 >> 1GB) -**`~$ docker images | inspect`** -####
Die lokalen Images ansehen +**`~$ docker images | inspect`
** +#### Die lokalen Images ansehen Ansehen der lokal gespeicherten Images, inkl. Details *** @@ -105,8 +105,8 @@ $ docker inspect 70214e5d0a90 ... ``` -**`~$ docker rmi`** -####
 Ein lokales Image entfernen +**`~$ docker rmi`
** +#### Ein lokales Image entfernen Einzelne Images aus dem lokalen Cache löschen *** @@ -122,7 +122,7 @@ $ docker rmi 70214e5d0a90 * D.h. das Image lebt erstmal weiter, auch wenn der Container schon weg ist. * --force hilft im Notfall. -**`~$ docker history`** +**`~$ docker history`
** #### Zeig die Befehlshistorie des Images an ```bash vagrant@serverspecbox:~$ docker history 1934124c12e6 @@ -142,8 +142,8 @@ c2a5714574ba 35 hours ago /bin/sh -c groupadd -r tomcat -g 4242 && ![](images/docker-command-images-deck.png) -**`~$ docker run`** -####
 Das wichtigste Kommando: Container starten! +**`~$ docker run`
** +#### Das wichtigste Kommando: Container starten! Instanziieren eines einzelnen Containers Vermutlich das Kommando mit den meisten Parametern. @@ -176,8 +176,8 @@ CTRL+P CTRL+Q zum detachen der shell - Ports Freigeben - Prozess starten mit einem bestimmten Nutzer -**`~$ docker ps`** -####
 Container anzeigen +**`~$ docker ps`
** +#### Container anzeigen Übersicht über laufende und gelaufene Container @@ -198,11 +198,11 @@ e6aa98c81a41 * Es existieren verschiedene Filtermöglichkeiten (`docker ps --help`) -**`~$ docker ps | attach`**
 +**`~$ docker ps | attach`
** #### Sich mit interaktiven Containern verbinden -**`~$ docker rm
`** +**`~$ docker rm`
** #### Alte Container abräumen Container, deren Prozess beendet wurde bleiben in der Containerliste stehen (`docker ps –a`). Der `rm`-Befehl löscht diese. @@ -219,8 +219,8 @@ e6aa98c81a41 * Besser: Beim run direkt --rm mitgeben -**`~$ docker logs`** -####
 Ausgabe von Container anschauen +**`~$ docker logs`
** +#### Ausgabe von Container anschauen *** ```bash @@ -236,8 +236,8 @@ exit * `-tail == nur die letzten x Zeilen anzeigen` -**`~$ docker events`** -
#### Ereignisse des Docker Daemons ansehen +**`~$ docker events`
** +#### Ereignisse des Docker Daemons ansehen Der Docker Daemon zeigt Ereignisse aus der API bzw. der Kommandozeile an. *** @@ -249,7 +249,7 @@ $ docker events * Keine Besonderheiten. Nett zum Kennenlernen/Debuggen. * Sehr wichtig für Discovery-Mechanismen (l8r) -**`~$ docker diff
`** +**`~$ docker diff`
** #### Unterschiede im Filesystem anzeigen Zeige Änderungen an, die der laufende Container im FS-Layer erzeugt @@ -271,8 +271,8 @@ D /etc/sysctl.conf *** * Keine Besonderheiten. Interessantes Debugging-Werkzeug. -**`~$ docker top`** -####
Prozessdetails eines Containers anzeigen +**`~$ docker top`
** +#### Prozessdetails eines Containers anzeigen STDOUT/STDERR eines Containers ansehen. *** @@ -290,10 +290,14 @@ root 4201 7159 0 ``` *** * Nur rudimentäre Informationen (s. deep dive später) + --- + ## Ausflug + Wollen wir hier einen Ausflug in die Namespaces und Cgroups wagen? -Anzeige welche Rechte wirklich vergeben sind im /proc File System +Anzeige welche Rechte wirklich vergeben sind im /proc File System. + --- ## Ziel: Apache-Container manuell bauen
 @@ -321,8 +325,8 @@ Wenn wir apachectl -D FOREGROUD nutzen klappt es! ``` -**`~$ docker commit`** -####
Den Dateisystem-Stand festhalten +**`~$ docker commit`
** +#### Den Dateisystem-Stand festhalten Ein „Commit“ erzeugt ein neues Image auf Basis eines bestehenden Containers *** @@ -349,8 +353,8 @@ REPOSITORY TAG IMAGE ID CREATED ## Weiter gehts -**`~$ docker tag`** -####
 Namen für Images +**`~$ docker tag`
** +#### Namen für Images * Ein „tag“ gibt einem Image (anhand seiner ID) einen Namen * docker tag [OPTIONS] IMAGE [REGISTRYHOST/][USERNAME/]NAME[:TAG] @@ -380,7 +384,8 @@ infrabricks/httpd 2.2 ffdb1d64ba4d 8 minutes ago ```bash ~$ docker run \ -tdi \ - -p 127.0.0.1:8000:80
 -e APACHE_RUN_USER=www-data \ + -p 127.0.0.1:8000:80 \ + -e APACHE_RUN_USER=www-data \ -e APACHE_RUN_GROUP=www-data \ -e APACHE_LOG_DIR=/var/log/apache2 \ -e APACHE_LOCK_DIR=/var/run/lock \ @@ -400,8 +405,8 @@ vagrant@docker-workshop:~$ curl http://127.0.0.1:8000/ --- -**`~$ docker stop | kill`** -####
 Container stoppen +**`~$ docker stop | kill`
** +#### Container stoppen Sendet SIGTERM und/oder SIGKILL an einen Container-Prozess *** @@ -417,10 +422,11 @@ CONTAINER ID IMAGE COMMAND CREATED CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ``` *** + Stop kann mit –t ein Timeout gegeben werden, danach wird automatisch ein kill ausgeführt. -- -**`~$ docker history`** -####
Wie wurde ein Image zusammengesetzt? + +**`~$ docker history`
** +#### Wie wurde ein Image zusammengesetzt? Zeigt Änderungen der FS-Layer über die Zeit an. *** @@ -440,7 +446,7 @@ bfb8b5a2ad34 4 days ago /bin/sh -c #(nop) ADD file:a889e7d86acdb Interessant ist die SIZE-Spalte, welche Aktion wie viel zum FS-Volumen beigetragen hat ( Squashing *) -**`~$ docker run | VOLUMES`**
 +**`~$ docker run | VOLUMES`
** #### Mounten von Verzeichnissen in Container Instanziieren eines einzelnen Containers @@ -490,8 +496,8 @@ ENTRYPOINT ["/usr/sbin/apache2"] CMD ["-D", "FOREGROUND"] ``` -**`~$ docker build`** -####
Definierte Container-Images bauen +**`~$ docker build`
** +#### Definierte Container-Images bauen Anhand einer Baubeschreibung (Dockerfile) ein Image aufbauen. *** @@ -541,8 +547,8 @@ CONTAINER ID IMAGE COMMAND CREATED ~$ docker stop web && docker rm web ``` -**`~$ docker port`** -####
 “Anonyme“ Port-Mappings anzeigen +**`~$ docker port`
** +#### “Anonyme“ Port-Mappings anzeigen Wenn keine expliziten Port-Mappings mit –p angegeben werden, verwendet Docker freie High-Ports. Das Port-Kommando zeigt diese an. @@ -562,7 +568,7 @@ c2bbd009cf3b infrabricks/apache2:latest /usr/sbin/apache2 -D 14 secon *** Keine Besonderheiten -**`~$ docker save | load`**
 +**`~$ docker save | load`
** #### Container-Images als Tarballs transportieren Speichert die FS-Layer eines Images als Tarball. Die lassen sich unabhängig von Registries transportieren. @@ -581,12 +587,12 @@ $ tar tf apache2.tar ``` *** Bringt erstaunlicherweise die Prozessorlast des Hosts hoch. -- + ### Übung: -Save, danach mit rmi images löschen und
laden. +Save, danach mit rmi images löschen und laden. -**`~$ docker push
`** +**`~$ docker push`
** #### Ein Image in eine (private) Registry hochladen ```bash @@ -633,7 +639,7 @@ $ docker push "infrabricks/apache2:latest" ![](images/docker-command-images-deck.png) -**`~$ docker run --link
`** +**`~$ docker run --link`
** #### Container miteinander verknüpfen Ein Container wird mit einem bereits laufenden Container „verknüpft“ – der neue Container erhält Environmentvariablen und Netzwerk-Freischaltungen ***