Erwartete Lesezeit: 1 minute
Syntaxelement | Beschreibung |
---|---|
FROM Abbildname FROM Abbildname : Versionstag | Festlegung des Sourceimages, auf dessen das neue Image gebaut werden soll. |
MAINTAINER Name | Angabe des Erstellers des Images Name und Email für eventuelle Anfragen |
RUN Kommando RUN ["Executable","Parameter1","Parameter2"] | Das RUN Kommando führt das angegeben Kommando in einem neuen Layer am Anfang des Images auf und schreibt das Ergebnis raus. Zur Beschleunigung der Auslieferung und der Installation des Images sollten immer mehrere RUN Kommandos zusammengefasst werden, um die Anzahl der Layer gering zu halten RUN RUN ["Executable"," |
CMD Kommando Attribute CMD ["Executable","Parameter1","Parameter2"] CMD ["Parameter1","Parameter2"] | Stellt Standardwerte für die Ausführung des Containers bereit. Pro Dockerfile darf es nur einen CMD geben. CMD CMD ["Executable"," CMD [" |
ENTRYPOINT ["Executable","Parameter1","Parameter2"] ENTRYPOINT Kommando Attribute1 Attribute2 ... | Die ENTRYPOINT-Anweisung fügt einen Einstiegs Befehl hinzu , dessen Argumente nicht überschrieben werden, wenn sie über den Befehl "docker run" übergeben werden. Das ist anders als das Verhalten von CMD. Dadurch können Argumente an den Einstiegspunkt übergeben werden |
EXPOSE Port1 Port2 .... | Gibt an auf welchen Ports der Container hören soll. |
ENV Schlüssel Wert | Setzen von Umgebungsvaiablen über Schüssel Wert Kombinationen |
COPY Quelle Ziel COPY ["Quelle", ... "Ziel"] | Kopiert Dateien von der Quelle an das Ziel. Es können sowohl lokale als auch Remotedateien genutzt werden. Im Ziel erhalten diese Dateien immer die Berechtigung 0755 und als Eigentümer den UserID und GruppenID 0 (root) |
ADD Quelle Ziel ADD ["Quelle", ... "Ziel"] | Wie COPY werden die Dateien kopiert . Handelt es sich bei der Quelldatei um ein Archiv (tar, zip,...) wird es automatisch am Ziel entpackt. |
VOLUME ["/Pfad/Pfad"] | Erzeugt einen Mount Point |
USER user USER user : group | Setzt den aktuell zu nutzenden User auf den angegebenen Wert und führt alle folgenden Befehle unter dessen Berechtigung aus. |
WORKDIR /Pfad/zum/Arbeitsverzeichnis | Setzt das Arbeitsverzeichnis für RUN, CMD, ENTRYPOINT, COPY und ADD Befehle. Relative Pfade sind relativ zum Pfad des vorherigen Arbeitsverzeichnis definiert . |
ARG Name ARG Name=Standardwert | Definiert eine Variable, die Benutzer zur Build-Zeit übergeben können. Der Build mit dem Befehl "docker build" kann die Variablen über den Parameter --build-arg |
ONBUILD Befehle | Trigger der ausgeführt wird , wenn das zu erstellenden Image als Basisimage genutzt wird. Es wird direkt beim Build nach dem FROM Kommando ausgeführt. |
Beispiel für ein Dokerfile welches einen kleinen Derby-DB Server bereitstellt :
FROM openjdk:8-jre MAINTAINER Marco Oderkerk <mia@oderkerk.de> ENV DERBY_HOME=/derby ENV DERBY_LIB=$DERBY_HOME/lib ENV CLASSPATH=$DERBY_LIB/derby.jar:$DERBY_LIB/derbynet.jar:$DERBY_LIB/derbytools.jar:$DERBY_LIB/derbyoptionaltools.jar:$DERBY_LIB/derbyclient.jar WORKDIR /tmp ADD source/db-derby-10.14.1.0-bin.tar.gz /tmp RUN mkdir $DERBY_HOME && \ mv /tmp/db-derby-10.14.1.0-bin/* $DERBY_HOME && \ rm -Rf /*.tar.gz $DERBY_HOME/demo $DERBY_HOME/javadoc $DERBY_HOME/docs $DERBY_HOME/test $DERBY_HOME/*.html $DERBY_HOME/KEYS EXPOSE 1527 CMD ["java", "-Dderby.stream.error.field=java.lang.System.out", "org.apache.derby.drda.NetworkServerControl", "start", "-h", "0.0.0.0"]