Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix GitHub formatting #1

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 67 additions & 66 deletions slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ Die Werbung verspricht:

![](images/docker-command-daemon-deck.png)

-
**`~$ docker version`
**
#### Bestimmung der Version

Expand All @@ -49,9 +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
Expand All @@ -72,9 +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.
***
Expand All @@ -90,9 +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
***
Expand All @@ -108,9 +104,9 @@ $ docker inspect 70214e5d0a90
"Comment": "",
...
```
-
**`~$ docker rmi`**
#### Ein lokales Image entfernen

**`~$ docker rmi`**
#### Ein lokales Image entfernen

Einzelne Images aus dem lokalen Cache löschen
***
Expand All @@ -126,8 +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
Expand All @@ -147,9 +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.
Expand All @@ -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?
Expand All @@ -181,9 +175,9 @@ CTRL+P CTRL+Q zum detachen der shell
- Volumen mounten
- Ports Freigeben
- Prozess starten mit einem bestimmten Nutzer
-
**`~$ docker ps`**
#### Container anzeigen

**`~$ docker ps`**
#### Container anzeigen

Übersicht über laufende und gelaufene Container

Expand All @@ -203,12 +197,12 @@ e6aa98c81a41
* Der Status ist leider schlecht grep-bar.
* 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.
Expand All @@ -224,9 +218,9 @@ e6aa98c81a41
* Funktioniert nur mit abgelaufenen Containern (außer dann mit --force)
* Besser: Beim run direkt --rm mitgeben

-
**`~$ docker logs`**
#### Ausgabe von Container anschauen

**`~$ docker logs`**
#### Ausgabe von Container anschauen

***
```bash
Expand All @@ -241,9 +235,9 @@ exit
* `-t == timestamps`
* `-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.
***
Expand All @@ -254,8 +248,8 @@ $ 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
Expand All @@ -276,9 +270,9 @@ 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.
***
Expand All @@ -296,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


Expand All @@ -326,9 +324,9 @@ CTRL+P, CTRL+Q
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
***
Expand All @@ -354,9 +352,9 @@ 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]
Expand Down Expand Up @@ -386,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 \
Expand All @@ -405,7 +404,8 @@ vagrant@docker-workshop:~$ curl http://127.0.0.1:8000/
`docker ps, docker top, docker inspect`

---
**`~$ docker stop | kill`**


**`~$ docker stop | kill`
**
#### Container stoppen

Sendet SIGTERM und/oder SIGKILL an einen Container-Prozess
Expand All @@ -422,10 +422,11 @@ CONTAINER ID IMAGE COMMAND CREATED
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
```
***

Stop kann mit –t <timeout_secs> 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.
***
Expand All @@ -444,8 +445,8 @@ 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
Expand Down Expand Up @@ -494,9 +495,9 @@ ADD html/index.html /var/www/html/index.html
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.
***
Expand Down Expand Up @@ -545,8 +546,8 @@ CONTAINER ID IMAGE COMMAND CREATED

~$ docker stop web && docker rm web
```
-
**`~$ docker port
`**

**`~$ docker port`
**
#### “Anonyme“ Port-Mappings anzeigen

Wenn keine expliziten Port-Mappings mit –p angegeben werden, verwendet Docker freie High-Ports.
Expand All @@ -566,8 +567,8 @@ 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.
Expand All @@ -586,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
Expand All @@ -614,7 +615,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
Expand All @@ -624,7 +625,7 @@ $ docker push "infrabricks/apache2:latest"

***
* `docker pull <username>/<imagename>:<tag>`
-

### Sharing

![](images/gift_of_sharing_colorpg.jpg)
Expand All @@ -637,8 +638,8 @@ $ 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
***
Expand Down