Docker Trickkiste - pretalx · 2019-03-22 · Docker Basics Praktische Kommandos für jeden Tag....

Preview:

Citation preview

Docker Trickkiste

Lightningtalk auf der FOSSGIS 2019 in Dresden

Docker Trickkiste

Mit Dank anJohannes Kröger

für das tolle Format “Trickkiste”!

Docker Basics

Praktische Kommandos für jeden Tag

docker run

Den Container nach dem Beenden löschen

docker run --rm alpine

.dockerignore● Funktioniert wie .gitignore für die

Buildumgebung von Docker● Saubere Buildumgebung● Schutz vor überschreiben● Schutz vor ungewollten Daten=> Schnellere Builds

.dockerignoreBeispiel

node_modules/coverage/*.heapdumpprod.pem*.tmp

Docker Labels

Stets die Übersicht behalten

Docker LabelsWas kann Labels haben?

● Images● Container● Volumes● Networks

Dockerfile

Images Labels gebenFROM node:latestLABEL key=value

LABEL

docker build

Images Labels geben

docker build --label key=value

docker run

Container Labels geben

docker run --label key=value

docker-composeContainer Labels geben

services: myservice: labels: key: value

Nach Labels filtern

Container hat ein Labeldocker ps \ --filter label=key

Nach Labels filtern

Container hat bestimmten Wert im Labeldocker ps \ --filter label=key=value

Labels ausgeben

Label eines Containers ausgebendocker ps \ --format '{{.Label "key"}}'

Konfiguration mit LabelsTraefik konfigurieren mit Labels

mapproxy-service: image: yagajs/mapproxy expose: [8080] labels: traefik.enable: "true" traefik.port: "8080"

Docker Buildkit

Dockers zukünftige Features schon heute

RUN mit mounts# syntax=docker/dockerfile:experimentalFROM node

RUN --mount=type=cache,target=/var/lib/apt/lists/ set -x \ && apt-get update \ && apt-get install curl -y

Multistage buildsFROM node as builder

RUN set -x \ && apt-get update \ && ...

FROM nodeCOPY --from=builder /path/from /path/to

DockerfileSo wenige Build-Steps wie möglich,

so viele wie nötigFROM node:latestRUN apt-get install …COPY package.json /my/appRUN npm installCOPY . /my/app/

DockerfileSo wenige Build-Steps wie möglich,

so viele wie nötigFROM node:latestRUN apt-get install …COPY package.json /my/appRUN npm installCOPY . /my/app/

DockerfileSo wenige Build-Steps wie möglich,

so viele wie nötigFROM Basis-ImageRUN System AbhängigkeitenCOPY Abhängigkeiten unserer AnwendungRUN Installation der AbhängigkeitenCOPY Sonstiger Quellcode

docker build

Image komplett neu bauen

docker build --no-cache [...]

docker build

Basis Image updaten

docker build --pull [...]

Recommended