Ubuntu von Anfang an optimal für den Einsatz von Docker einrichten

Für den Einsatz von Docker kann man zwar inzwischen auch Windows Server 2016 oder Macs nutzen, für den lizenzbedingt kostenfreien Einsatz ist jedoch immer noch Linux die erste Wahl. Ich nutze dafür gewohnheitsmäßig Ubuntu und möchte hier für Euch als auch für mich dokumentieren, wie ich Docker auf einem frisch installiertem Ubuntu aufsetze.

Ubuntu Grundeinstellungen

Als erstes muss Ubuntu auf den aktuellen Stand gebracht werden. Dies passiert üblicherweise mit apt

sudo apt update

sudo apt full-upgrade

Als nächstes empfiehlt es sich, herauszufinden, mit welcher IP-Adresse man im Netzwerk unterwegs ist, damit man sich per SSH einloggen kann und nicht alles direkt von der Konsole aus machen muss. Bei einer VMWare-Console hat das noch den Nachteil, dass man keine Zwischenablage nutzen kann.

ifconfig

Wenn ihr eine feste IP-Adresse über den DHCP-Server konfigurieren wollt, so ist das jetzt Eure Gelegenheit dazu. Anschließend verbindet ihr Euch per SSH auf Eure Ubuntu-Maschine.

SSH-Authentifizierung mit public/private key einrichten

Sollte ihr Euch mit einem SSH-Schlüssel per SSH verbinden wollen, so müsst ihr Euren public key bekannt machen. Dafür legt ihr ein Verzeichnis .ssh an und erstellt dort eine Datei authorized_keys, in der alle Public Keys für die Anmeldung drin stehen müssen.

mkdir .ssh

cd .ssh

vim authorized_keys

Jetzt den Public Key einfügen und speichern.

Docker mit apt installieren

Quelle: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository

Zuerst die Werkzeuge installieren, damit repositories über https angesprochen werden können (ist per Default aber schon installiert)

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common


Anschließend den GPG-Key hinzufügen

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

Jetzt das Repository von Docker hinzufügen

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Anschließend das apt aktualisieren

sudo apt-get update

Und endlich Docker installieren

sudo apt-get install docker-ce

Schritte nach der Installation von Docker

Erstellen einer Docker Gruppe

 sudo groupadd docker

Hinzufügen des aktuellen Nutzers zur Gruppe

sudo usermod -aG docker $USER

Anschließend aus- und wieder einloggen für das Aktualisieren der Gruppenmitgliedschaft.

Jetzt wird es Zeit für einen ersten Check, ob alls läuft mit Hilfe des „Hello-World“ Containers

 docker run hello-world

Wenn jetzt Probleme auftreten, könnt ihr die Problembehebung hier nachlesen

Jetzt stellen wir ein, dass Docker beim Systemstart geladen wird:

sudo systemctl enable docker

Nutzen der grafischen Oberfläche „Portainer“ für die komfortable Administration von Docker

Die grafische Benutzeroberfläche können wir einfach einrichten, indem wir den Container mit dem nachfolgenden Befehl starten:


docker run --rm --name portainer -d --privileged -p \
 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/portainer:/data portainer/portainer

Damit ist die grundlegende Einrichtung abgeschlossen.
Im nächsten Beitrag geht es darum, die Infrastruktur von Docker so einzurichten, dass die Container eine Datenumgebung haben und ich per SSH und git die Repositories mit den auszuführenden Applikation verwenden kann.

Vim Syntax Farben verändern

Default Farbschema von vim
vim Farbschema default – Kommentare sind mit dunkelblau auf Schwarz schlecht lesbar

Welcher VIM-Benutzer kennt das nicht? Man möchte ein Bash-Skript schrieben und sämtliche Kommentare sind Dunkelblau auf schwarz.

Aus diesem Grunde habe ich mal recherchiert, wie ich mit Ubuntu 16.04 mein VIM mit anständigen Farben ausrüsten kann und möchte Euch mit mit meiner Erkenntnis vertraut machen.

vim bietet von Hause aus schon verschiedene Farb-Schemen an. Diese findet ihr im Ordner

/usr/share/vim/vim74/colors

Diese Farbschemen tragen die Endung .vim und sind per Default die folgenden:

  • blue.vim
  • default.vim
  • desert.vim
  • evening.vim
  • morning.vim
  • pablo.vim
  • shine.vim
  • torte.vim
  • darkblue.vim
  • delek.vim
  • elflord.vim
  • koehler.vim
  • murphy.vim
  • peachpuff.vim
  • ron.vim
  • slate.vim
  • zellner.vim

Testen könnt ihr die Farbschemen, indem ihr in vim den Befehl

:color [farbschema]

eingebt. Ich habe zum Beispiel :color blue eingegeben und schon sah das Editor-Bild wie folgt aus:

vim Farbschema Blue
vim Farbschema Blue

Wenn ihr Euer Wunschfarbschema gefunden habt, legt in Eurem Homeverzeichnis eine Konfig-Datei für Vim an

vim ~/.vimrc

in die Datei fügt ihr einfach eine Zeile mit dem Inhalt

color [farbschema]

hinzu. In meinem Fall habe ich geschrieben color industry

Anschließend wie immer mit :wq speichern und schließen und anschließend sollten die Standardfarben angepasst sein…

Wenn Euch das geholfen hat, freue ich mich über einen „Daumen hoch“ 🙂

Solltet ihr noch Fragen oder eine Meinung dazu haben, freue ich mich über einen Kommentar und werde ihn schnellstmöglich beantworten. Als ambitionierter „Linux-Laie“ baue ich mir oft solche Anleitungen, um im Bedarfsfall selbst wieder nachschlagen zu könenn – aus diesem Grund auch an dieser Stelle diese Anleitung.

JavaFX wird nicht mehr gefunden in Eclipse Oxygen

Das Problem

Bei der alltäglichen Java-Entwicklung mit Eclipse Oxygen hatte ich mit einem Mal das Problem, dass JavaFX nicht mehr gefunden wurde und ich dementsprechend nicht weiterarbeiten konnte.

Die Lösung

Die Lösung gestaltete sich nach kurzem Google zum Glück als relativ einfach:

  1. Öffne „Help -> Install New Software“
  2. Wähle bei „Work With“ die aktuelle Eclipse Version – in meinem Fall OxygenEinstellung bei "Work with": OXYGEN auswählen
  3. Deaktiviere alle GruppenItems der Kategorien
  4. Filtere nach „fx“E(fx)clipse auswählen
  5. Wähle e(fx)clipse – IDE
  6. Next
  7. Next
  8. Accept the license
  9. Finish

Anschließend musste ich Eclipse einfach neu starten und alles lief wieder wie es soll.

Wie so oft hat mich StackOverflow zr Lösung geführt – damit die Lösung jedoch auch in deutscher Sprache verfügbar ist und weil ich das Problem in absehbarer Zeit vielleicht wieder habe, werde ich die Lösung an dieser Stelle auf Deutsch veröffentlichen.

Wer Interesse an der Quelle meiner Lösung sucht, klickt gerne unten auf diesen Link:

Eclipse Oxygen - Titelbild der Version von Oktober 2017
Eclipse Oxygen – Titelbild der Version von Oktober 2017

Exchange-Postfächer in PST exportieren – Powershell

Im Administrationsalltag stellt sich ab und an die Frage, wie man Postfächer ohne Verwendung von Outlook direkt in PST-Dateien exportieren kann.

  1.  Die Berechtigung für den Export muss vergeben werden:
    New-ManagementRoleAssignment –Role „Mailbox Import Export“ –User „administrator“
  2. Der Exportbefehl muss eingegeben werden
    New-MailboxExportRequest -Mailbox "Postfach Name" -FilePath "\\UNC_PFAD\ZUM\SPEICHERZIEL\pf.pst"

Nach Abschluss des Exports ist es noch sinnvoll, alle abgeschlossenen Requests zu entfernen:

Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest

Dynamisches DNS – Flex-DNS von Domain Offensive via Bash Skript aktualisieren

Flex DNS ist eine günstige Alternative zu DynDns, NO-IP und ähnliches und basiert auf der Möglichkeit, dass man mit der eigenen Domain auf die eigene Firewall und mittels Portweiterleitung auf eigene Dienste zugreifen kann, auch wenn man keine feste IP-Adresse hat. Angeboten wird diese Technologie über den Anbieter Domain Offensive 

Für den Zugriff auf meine Owncloud benötigte ich den Zugriff auf meine dynamische IP-Adresse mittels eines festen Domainnamens. Dafür bieten sich zum derzeitigen Zeitpunkt drei Möglichkeiten:

  1. einen kostenfreien Anbieter wie no-ip.com, selfhost.eu oder ähnliches. Die kostenfreien Angebote sind jedoch immer an Bedingungen geknüpft, wie die Aktivierung eines Links aller 30 Tage
  2. einen DynDns-Account eines Anbieters käuflich erwerben
  3. von meinem Internetprovider (Domain Offensive) eine Subdomain als DynDns Zugang verwenden.

Im konkreten Fall bevorzugte ich die dritte Möglichkeit. Um mittels eines Cron Jobs die den Flex-DNS-Eintrag zu aktualisieren, habe ich das Bash-Skript von dieser Quelle angepasst und zu folgendem vervollständigt und geringfügig korrigiert:

#!/bin/bash

USERNAME="username"
PASSWORD="password"
HOSTNAME="DynDNS.Hostname"
IP=`curl -s http://whatismijnip.nl |cut -d " " -f 5`

ABUSE_LOCK_FILE="/tmp/dyndns.abuse"
LAST_IP_FILE="/tmp/lastip"
LAST_IP=`cat $LAST_IP_FILE`

#lockfile check, lockfile is only used if a abuse result appears
if [ -e "$ABUSE_LOCK_FILE" ]; then
echo "Dyndns abuse lockfile exisits: $ABUSE_LOCK_FILE"
exit 1
fi
#end of lockfile check

if [ "$IP" != "$LAST_IP" ]; then
echo "Current IP: $IP"
RESULT=`curl -s "http://$USERNAME:$PASSWORD@ddns.do.de?myip=$IP"`
echo "FlexDNS says: $RESULT!"
else
echo "IP is still the same: $LAST_IP"
fi

if [ "$RESULT" == "abuse" ]; then
echo "Abuse lock!"
echo "Abuse lock!" > "$ABUSE_LOCK_FILE"
fi

echo "$IP" > "$LAST_IP_FILE"

Vorteil: Das Update wird nur durchgeführt, wenn sich die IP wirklich geändert hat.

Das Bash-Script habe ich auf dem Linux Bbetriebssystem mittels crontab in die regelmäßgie Ausführung hinzugefügt.