Wie man pdfToolbox 'dockerisiert'

Docker ist eine offene Plattform, um Anwendungen virtualisiert  auszuführen. Hierbei verhält es sich jedoch anders als "vollständig" systemabgegrenzten Virtualisierungen wie von z.B. VMware, VirtualBox, Parallels, Xen usw. denn:

  • es hat eine sehr schnelle Startzeit (nur wenige Millisekunden)
  • Änderungen sind nicht dauerhaft (erst beim Übernehmen)
  • bislang kann ausschließlich die pdfToolbox CLI für Linux dockeriziert werden
  • vorerst können ausschließlich nur Konsolenprogramme dockeriziert werden. Besonders GUI basierte Programme werden nicht unterstützt.
  • Container verschwinden, wenn die dockerizierte Anwendung beendet wird

Hinweis: Wichtig auch zu erwähnen ist hier das:

  • Docker funktioniert sehr gut mit Linux und MacOS.
  • Es gibt zwar auch bereits eine Windows Variante. Bei Tests hat sich diese Version jedoch als nicht benutzbar gezeigt (langsam und unstabil).

Terminologie

  • Docker Image: Ein Image ist eine Sammlung von Dateisystemebenen auf der Festplatte, vergleichbar mit einer besonderen Form eines (ISO) Abbildes, welches alles enthält, um das Programm auszuführen (Die ausführbare Datei, Laufzeitdateien, Konfigurationsdateien usw.)
  • Docker Container: Ein Container ist eine laufende Instanz eines Docker Images.

Hinweis: Man kann sogar mehrere Container gestartet haben vom selben Docker Image.

Installation unter Linux

Der Linux Paketmanger stellt zwar ein Paket mit Namen "docker" zur Verfügung, hierbei handelt es sich jedoch um etwas Anderes. Wir benötigen stattdessen das docker-ce package, welches in einem anderen package repository enthalten ist, das der Linux Paketmanager nicht kennt.

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt-get update
sudo apt-get install docker-ce

Benutzer zur Docker Gruppe hinzufügen:

sudo adduser username docker

Hinweis: bereits eingeloggte Benutzer müssen zunächst ausgeloggt und wieder eingeloggt werden, um die Gruppenänderungen zu übernehmen

Erzeugen und ausführen der eigenen Docker Images

Wir empfehlen der Einfachheit halber Wrapper Skripte zu nutzen. Beispielweise:

  • common_docker_env.sh (Ein Skript für eine allgemeingültige Docker-Umgebung)
  • debian_docker_env.sh (Ein Skript speziell für ein Debian Docker Container)

wie darunter angehängt.

Die typischen Workflow Schritte sind wie folgt:

  • Editieren von debian_docker_env.sh und setzen der Variable dimage=debian
  • Ausführen von debian_docker_env.sh (as root-Benutzer)
DUID=0 bash debian_docker_env.sh
  • Installieren des sudo Befehls
apt update
apt install sudo
  • Über ein weiteres Terminal-Fenster die Container ID herausfinden
docker ps
CONTAINER ID
IMAGE
COMMAND
7aa90c66a4ae
debian
"/bin/bash"
  • Als nächstes wollen wir unser eigenes Image mit einigen nützlichen Paketen anreichern, daher fügen wir den 7aa90c66a4ae Container zum einem Neuen Image hinzu.
docker commit 7aa90c66a4ae callas/debian
  • Den 7aa90c66a4ae Container beibehalten (durch Eingeben von exit im Terminal Fensters innerhalb des Containers)
  • Editieren von debian_docker_env.sh, um unser neues callas/debian image verwenden zu können die Variable setzen: dimage=callas/debian
  • Ausführen von debian_docker_env.sh
  • Anreichern des callas/debian Images durch nützliche Packages
sudo apt update
sudo apt install vim-tiny 
etc.

Wichtiger Hinweis hier ist:

  • Sie müssen diese Änderungen erneut übernehmen mittels docker commit <id> von einem zusätzlichen Terminal Fenster aus.
docker commit <id> <image name>
  • das bestehende Image kann überschrieben werden (callas/debian), anderenfalls vergeben Sie einen neuen Namen.
docker commit <id> callas/debian
docker commit <id> callas/debian-new

Ein existierendes Image wird NIE überschrieben. Nur der existerende Image Name auf eine neue Image ID verschoben.

Die volle Dokumentation von Docker befindet sich übrigens hier.

pdfToolbox Installation

Soweit, haben wir Docker installiert und das Docker Image vorbereitet mit den Voraussetzungen, die für pdfToolbox nötig sind. Als nächstes kann pdfToolbox installiert werden.

Zuerst starten des Debian Containers:

bash debian_docker_env.sh

Herunterladen und auspacken der aktuellen pdfToolbox:

wget 'http://www.callassoftware.com/downloads/callas_pdfToolboxCLI_x64_Linux.tar.gz'
mkdir -p callas_pdfToolbox_CLI
tar -C callas_pdfToolbox_CLI --strip 1 -zxvpf callas_pdfToolboxCLI_x64_Linux.tar.gz

Hinweis: Zusätzliche Packages falls erforderlich installieren.

Nun, wie üblich in einer Docker Umgebung – müssen die Änderungen im Container übernommen werden. Von einem weiteren Terminal-Fenster die Container ID herausfinden:

docker commit <id> callas/pdfToolbox

Aufgrund der Einfachheit empfehlen wir,  dass Sie das Skript debian_docker_env.sh umbenennen (z.B. ptb_docker.sh) und die Docker Image Umgebungsvariable auf das callas/pdfToolbox Docker Image setzen.

Für den Fall, das Sie von uns vor-paketierte Docker Images wünschen, senden Sie uns einfach eine E-Mail an support@callassoftware.com mit den benötigten Angaben.

0 Kommentare

Geben SIe Ihren Kommentar ein

E-Mail senden, wenn jemand auf diesen Kommentar antwortet