4_Dockerfile - OTH-AW/isac-oth-aw GitHub Wiki

Dockerfile

FROM Ubuntu

  • Muss immer mit einem FROM starten
  • Base-Image (OS oder anderes Image)

RUN

  • Führt einen bestimmten Befehl aus (exec)

COPY

  • Kopiert Dateien vom Ausführungsort in das Image

ENTRYPOINT

  • Wird ausgeführt wenn ein Container des Images gestartet wird

Best Practices

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

CMD vs Entrypoint

Beispiel eigenes Ubuntu Image mit Anpassungen statt sleep 5 über CMD beim run Aufruf übergeben:

Dockerfile:

FROM Ubuntu
CMD ["sleep", "5"] oder CMD sleep 5
docker build -t ubuntu-sleeper .
docker run ubuntu-sleeper

5 seconds is hardcoded!

Wir wollen: docker run ubuntu-sleeper 10

Das geht mit:

FROM Ubuntu
ENTRYPOINT ["sleep"]

Achtung, CMD Appended nur, wenn man das macht:

FROM Ubuntu
ENTRYPOINT ["sleep"]
CMD ["5"]

=> sleep 5

docker run ubuntu-sleeper 10

=> sleep 10, überschreibt also CMD

mit --entrypoint othersleep ubuntu-sleeper 10

könnte man folgendes bewirken:

=> othersleep 10

⚠️ **GitHub.com Fallback** ⚠️