Arbeiten mit Docker-Containern

Einführung in Docker

Tim Sangster

Software Engineer @ DataCamp

Container auflisten

repl@host:/# docker ps
CONTAINER ID   IMAGE    .. CREATED         STATUS         ...  NAMES
3b87ec116cb6   postgres    2 seconds ago   Up 1 second    ...  adoring_germain
8a7830bbc787   postgres    3 seconds ago   Up 2 seconds   ...  exciting_heisenberg
fefdf1687b39   postgres    3 seconds ago   Up 2 seconds   ...  vigilant_swanson
b70d549d4611   postgres    4 seconds ago   Up 3 seconds   ...  nostalgic_matsumoto
a66c71c54b92   postgres    4 seconds ago   Up 4 seconds   ...  lucid_matsumoto
8d4f412adc3f   postgres    6 seconds ago   Up 5 seconds   ...  fervent_ramanujan
fd0b3b2a843e   postgres    7 seconds ago   Up 6 seconds   ...  cool_dijkstra
0d1951db81c4   postgres    8 seconds ago   Up 7 seconds   ...  happy_sammet
...
Einführung in Docker

Benannte Container

docker run --name <container-name> <image-name>
repl@host:/# docker run --name db_pipeline_v1 postgres
repl@host:/# docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED  
43aa37614330   postgres   "docker-entrypoint.s…"   About a minute ago
STATUS              PORTS      NAMES
Up About a minute   5432/tcp   db_pipeline_v1
docker stop <container-name>
repl@host:/# docker stop db_pipeline_v1
Einführung in Docker

Laufender Container filtern

docker ps -f "name=<container-name>"
repl@host:/# docker ps -f "name=db_pipeline_v1"
CONTAINER ID   IMAGE      COMMAND                  CREATED  
43aa37614330   postgres   "docker-entrypoint.s…"   About a minute ago
STATUS              PORTS      NAMES
Up About a minute   5432/tcp   db_pipeline_v1
Einführung in Docker

Container-Logs

docker logs <container-id>
repl@host:/# docker logs 43aa37614330
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".

PostgreSQL init process complete; ready for start up.

2022-10-24 12:10:40.318 UTC [1] LOG:  database system is ready to accept connect..
Einführung in Docker

Live-Logs

docker logs -f <container-id>
repl@host:/# docker logs -f 43aa37614330
PostgreSQL init process complete; ready for start up.

2022-10-24 12:10:40.309 UTC [1] LOG:  starting PostgreSQL 14.5 (Debian 14.5-1.pg..
2022-10-24 12:10:40.309 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port ..
2022-10-24 12:10:40.309 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2022-10-24 12:10:40.311 UTC [1] LOG:  listening on Unix socket "/var/run/postgre..
2022-10-24 12:10:40.315 UTC [62] LOG:  database system was shut down at 2022-10-..
2022-10-24 12:10:40.318 UTC [1] LOG:  database system is ready to accept connect..
Einführung in Docker

Aufräumen

docker container rm <container-id>
repl@host:/# docker stop 43aa37614330
43aa37614330
repl@host:/# docker container rm 43aa37614330
43aa37614330
Einführung in Docker

Zusammenfassung der neuen Befehle

Verwendung Befehl
Container mit einem Namen starten docker run --name <container-name> <image-name>
Laufenden Container nach Namen filtern docker ps -f "name=<container-name>"
Vorhandene Logs für Container ansehen docker logs <container-id>
Live-Logs für Container ansehen docker logs -f <container-id>
Live-Log-Ansicht des Containers verlassen CTRL+C
Gestoppten Container entfernen docker container rm <container-id>
Einführung in Docker

Lass uns üben!

Einführung in Docker

Preparing Video For Download...