Docker.io in der Praxis – OpenVPN Server (Permalink)

Nach dem ersten Artikel zu Docker nun ein weiterer Post zum Thema.

Diesmal direkt mit dem Erstellen eines eigenen Images. Es geht um OpenVPN, ein open-source VPN, welches eine Vielzahl von Plattformen (Windows, OS X, Linux, Android und iOS) unterstützt.

Veröffentlicht habe hatte ich das ganze unter github (siehe ehemals https://github.com/shing19m/docker_openvpn_server, leider ist diese Code verloren gegangen). Die zentrale Datei ist die Datei Dockerfile, welche den Build des Images steuert.

FROM debian

MAINTAINER Joachim Lusiardi

RUN apt-get update; \
   apt-get -y install openvpn ;

ADD start.sh /start.sh

RUN chmod +x /start.sh

VOLUME ["/etc/openvpn"]
VOLUME ["/var/log/openvpn"]

EXPOSE 1194/udp
EXPOSE 1194/tcp

ENTRYPOINT /start.sh

FROM legt ein Basis-Image fest, hier die neuste Version von Debian.
MAINTAINER gibt den Betreuer des Images an.
RUN führt Befehle innerhalb des Images aus. Hier das Updaten der Packet-Quellen, Installieren von OpenVPN und dem Ausführbarmachen des start-Skripts.
ADD fügt eine Datei dem Image hinzu.
VOLUME gibt an, das ein Verzeichnis des Images beim Ausführen auf ein Verzeichnis des Hosts gelegt werden kann.
EXPOSE definiert welche Ports von ausserhalb des Images erreichbar sein sollen. Diese sind nicht automatisch beim Starten des Images auf eine öffentliche IP gebunden.
ENTRYPOINT gibt an, welches Kommando ausgeführt werden soll.

Weitere Detail auf github und auch unter https://registry.hub.docker.com/u/shing19m/docker-openvpn-server/.