Wie baue ich ein Docker-Image

Erwartete Lesezeit: 2 minuten

Als erstes benötigt man für den Bau eines Docker-Images ein Dockerfile.
Hierbei handelt es sich um eine Textdatei mit den Namen Dockerfile (ja ohne eine Dateiendung).
Ein Beispiel und die Syntax findet Ihr auf der Seite Dockerfile Syntax .

Hat man alle benötigten Komponenten , Dockerfile und ggf. weitere Dateien und Anwendungen , zusammen , kann man über den Befehl

docker build [Optionen] Pfad | Url

mit dem Zusammenbau beginnen.

ParamterBeschreibung
-f , --file DateipfadAngabe des Sourcecode für den Imagebuild
Standardwert: Dockerfile
--build-arg variable=wertÜber die Angabe der build-arg können im Dockerfile definierte ARG Befehle gesetzt werden
-t "name[:tag]"Setzen des Imagenamens inkl. optionalem Versionstag
--label=labelHinterlegen von Metadaten zum Image
-q, --quietUnterdrücken von Vorgangsmeldungen, die während des Buildvogangs ausgegeben werden.
--rmEntfernt automatisch Zwischencontainer , nachdem der Buildvorgang erfolgreich ausgeführt wurde.

 

Beispiel :
Basierend auf dem Beispiel des Dockerfile-Beitrages zur Erstellung eines kleines Derbyservers zeigt dieses Beispiel , wie das Image gebaut wird .

Verzeichnisstruktur:

$ ls-all
drwxrwxr-x  3 ec2-user ec2-user 4096 Mar  4 17:26 .
drwx------ 10 ec2-user ec2-user 4096 Mar  4 17:26 ..
-rw-rw-r--  1 ec2-user ec2-user  680 Mar  4 17:21 Dockerfile
drwxrwxr-x  2 ec2-user ec2-user 4096 Mar  4 16:55 source

Inhalt source Verzeichnis
-rw-rw-r-- 1 ec2-user ec2-user 18534972 Oct 14 14:31 db-derby-10.14.1.0-bin.tar.gz

 

Build:

[root@ derby]# docker build -t "testserver:latest" --label="Testserver" . Sending build context to Docker daemon 18.54MB Step 1/11 : FROM openjdk:8-jre ---> e956268fd4ed Step 2/11 : MAINTAINER Example <example@exaple.com> ---> Using cache ---> ee7f35f8045f Step 3/11 : ENV DERBY_HOME /derby ---> Using cache ---> 26eaf9395036 Step 4/11 : ENV DERBY_LIB $DERBY_HOME/lib ---> Using cache ---> a044a69c4d39 Step 5/11 : ENV CLASSPATH $DERBY_LIB/derby.jar:$DERBY_LIB/derbynet.jar:$DERBY_LIB/derbytools.jar:$DERBY_LIB/derbyoptionaltools.jar:$DERBY_LIB/derbyclient.jar ---> Using cache ---> 358fa903730d Step 6/11 : WORKDIR /tmp ---> Using cache ---> 8d73c7ec5ed1 Step 7/11 : ADD source/db-derby-10.14.1.0-bin.tar.gz /tmp ---> Using cache ---> bf0853a4aa1f Step 8/11 : RUN mkdir $DERBY_HOME && mv /tmp/db-derby-10.14.1.0-bin var better_post_views_vars = {"admin_ajax_url":"https:\/\/www.marcooderkerk.de\/wp-admin\/admin-ajax.php","post_id":"2433"};