Images, Container, Volumes, Networks

Images

Ein Docker Image ist ein unveränderliches Dateisystem-Schnappschuss, aus dem Container gestartet werden.

docker image pull postgres:18.3-alpine3.23
docker image ls
docker image history postgres:18.3-alpine3.23
docker image inspect postgres:18.3-alpine3.23
docker image rm postgres:18.3-alpine3.23

Container

docker container run --rm hello-world
docker container ls        # laufende Container
docker container ls -a     # alle Container inkl. gestoppter
docker container stop [id]
docker container rm [id]
docker container logs [id]
docker container logs -f [id]   # follow
docker container inspect [id]

Volumes

Volumes persistieren Daten über den Lebenszyklus eines Containers hinaus.

docker volume create pgdata
docker volume ls
docker volume inspect pgdata
docker volume rm pgdata

Networks

Netzwerke ermöglichen die Kommunikation zwischen Containern.

docker network create pgnet
docker network ls
docker network inspect pgnet
docker network rm pgnet

PostgreSQL + PGAdmin4 Beispiel

Kombination von Container, Volume und Network:

docker network create pgnet
docker volume create pgdata

docker run -d \
  --name postgres \
  --network pgnet \
  -e POSTGRES_PASSWORD=postgres \
  -v pgdata:/var/lib/postgresql \
  postgres:18.3-alpine3.23

docker run -d \
  --name pgadmin4 \
  --network pgnet \
  -p 8080:80 \
  -e PGADMIN_DEFAULT_EMAIL=admin@admin.com \
  -e PGADMIN_DEFAULT_PASSWORD=admin \
  dpage/pgadmin4:9.14.0

docker container ls
docker logs -f pgadmin4

PGAdmin4 im Browser unter http://[ip]:8080 aufrufen:

Feld Wert
E-Mail admin@admin.com
Passwort admin

Verbindung zur PostgreSQL-Datenbank in PGAdmin4:

Feld Wert
Hostname postgres
Port 5432
Benutzer postgres
Passwort postgres

Aufräumen

docker container stop postgres pgadmin4
docker container rm postgres pgadmin4
docker network rm pgnet
docker volume rm pgdata
docker system df
docker system prune