Commit 9c65c63a authored by Axel Dürkop's avatar Axel Dürkop

Merge branch 'rztab' into 'master'

Rztab

See merge request transferworkshops/docker-schulung!1
parents 580d87d7 f427024c
......@@ -25,7 +25,13 @@ Kann klappen, muss aber nicht.
## Docker ohne `sudo` verwenden
tbd
Nur für Linux-Systeme
Hinzufügen des Anwenders zur `docker`-Gruppe
```bash
usermod -aG docker $USER
```
---
......@@ -49,24 +55,193 @@ tbd
---
## Container administrieren
## Container administrieren
### Übersicht der …
… laufenden Container
```bash
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b8897a7768c6 knsit/gitpitch "/gitpitch/bin/run..." About an hour ago Up About an hour 0.0.0.0:9000->9000/tcp gitpitch
```
… laufenden und gestoppten Container
```bash
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9bf7f3f41981 hello-world "/hello" 6 minutes ago Exited (0) 6 minutes ago clever_bassi
b8897a7768c6 knsit/gitpitch "/gitpitch/bin/run..." About an hour ago Up About an hour 0.0.0.0:9000->9000/tcp gitpitch
3a5452539747 5393576b5da5 "/gitpitch/bin/run..." 11 days ago Exited (137) 11 days ago gitpitch_gitpitch_1
76e3d7c4ecc3 postgres:9.6.2 "docker-entrypoint..." 6 weeks ago Exited (0) 6 weeks ago dspace_postgres_1
```
+++
### STATUS `Exited`
Kein automatisches Löschen des Containers *ohne* die Option `--rm`
```bash
docker run …
```
Automatisches Löschen des Containers *mit* der Option `--rm`
```bash
docker run --rm …
```
+++
### Löschen
Einzeln per Name …
```bash
docker rm gitpitch_gitpitch_1
```
… oder per ID
```bash
docker rm 3a5452539747
```
Alle gestoppten Container löschen
```bash
docker container prune
```
+++
## Container upgraden?
Container werden niemals aktualisiert (immutable)
Images und/oder deren Bauplan (`Dockerfile`) wird aktualisiert
Container werden auf Basis aktueller Images (neu) gestartet
Herausforderung ist es, eine Aktualisierungsnotwendigkeit zu erkennen
---
## Eigene Images bauen
Basis ist das `Dockerfile`
```yaml
FROM scratch
COPY hello /
CMD ["/hello"]
```
Erstellen des Images
```bash
docker build -t meinimage .
```
+++
Komplettes Beispiel
```bash
mkdir -p ~/docker-workshop/1stImage
cd ~/docker-workshop/1stImage
curl -L https://github.com/docker-library/hello-world/raw/master/amd64/hello-world/hello --output hello
chmod +x hello
cat <<EOF > ~/docker-workshop/1stImage/Dockerfile
FROM scratch
COPY hello /
CMD ["/hello"]
EOF
docker build -t docker-workshop/1st-image .
docker run --rm docker-workshop/1st-image
```
---
## Container verlinken
Einfachste Möglichkeit mit
```bash
docker run --link anderer_container
```
Nur empfehlenswert, wenn man nicht mit `docker-compose` arbeiten will
+++
`docker-compose` vermeidet unlesbare Kommandos
Konfiguration in einer Datei `docker-compose.yml`
+++
`depends_on` verbindet Container miteindander
```yaml
version: "2"
services:
web:
image: 'docker.rz.tu-harburg.de:5000/docker/humhub:latest'
ports:
- '32330:80'
depends_on:
- db
db:
image: 'docker.rz.tu-harburg.de:5000/docker/mariadb:latest'
environment:
- MYSQL_DATABASE=foo
- MYSQL_USER=bar
- MYSQL_PASSWORD=foobar
```
---
## Images veröffentlichen
[Docker Hub Account anlegen](https://hub.docker.com/)
Anmelden
```bash
docker login
```
Image `push`-en
```bash
docker push docker-workshop/1st-image
```
---
## Pflege und Wartung
Lokale Images löschen
```
docker image prune
```
Komplettes aufräumen
```bash
docker system prune
```
---
## Quellen und Links
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment