Im Durchschnitt wird dieses Tutorial Docker auf Ubuntu 16.04 LTS – ein einfaches Kochrezept mit 5 bewertet, wobei 1.0 die schlechteste und 5.0 die beste Bewertung ist. Es haben insgesamt 750 Besucher eine Bewertung abgegeben.
746 4

Docker auf Ubuntu 16.04 LTS – ein einfaches Kochrezept

vom gridscale Team Docker Ubuntu
tutorial - docker auf Ubuntu installieren

Um was geht es bei Docker?

Bei Docker handelt es sich um eine Open-Source-Software zur “Anwendungsverteilung”. Klingt erst einmal Abstrakt. Fand ich vor einiger Zeit auch und habe dann angefangen mich genauer mit Docker zu befassen. Jetzt möchte ich dir Docker gerne in diesem ersten Artikel näher bringen und dich bei deinen ersten Schritten mit Docker begleiten. Dieser Blogbeitrag richtet sich an Anwender, die ihre ersten Schritte mit Docker machen möchten und beleuchtet nur grundlegende Dinge. Es folgen weitere Beiträge, die etwas tiefer einsteigen. Mehr dazu später.

Wenn du Verbesserungsvorschläge zu diesem Artikel hast, dann freue ich mich sehr über einen kurzen Kommentar oder Hinweis. Du erreichst das Team von gridscale jederzeit unter team@gridscale.io.

Bevor wir loslegen, drei wichtige Begriffe:

  • Image: ein fertiger Docker-Container, den du einfach von einem Host zum nächsten Host portieren oder dublizieren kannst.
  • Container: ein virtuelles Betriebssystem, bereit für die Aufnahme einer Docker-Anwendung.
  • Dockerfile: eine Sammlung an Befehlen und Parametern, um ein bestehendes Image an die eigenen Bedürfnisse anzupassen. Beispielsweise Änderung von Kennwörtern, konfigurieren von Domains, etc…

Diesen Artikel baue ich auf einem Ubuntu 16.04 LTS auf, du kannst aber auch andere Distributionen verwenden. Wenn es an irgendeiner Stelle hakt, schreib uns kurz an, dann helfen wir dir gerne weiter.

Vorbereitungen

Klick dir am Besten irgendwo ein Ubuntu 16.06 LTS zusammen. Sofern du keine Plattform dafür hast, dann nimm einfach gridscale. Du kannst nach der Anmeldung und der Aktivierung deines Accounts den Gutscheincode “docker16” eingeben, dann hast du ein kleines Guthaben mit dem du dieses Tutorial selbst nachvollziehen kannst. Vergiss bitte nicht nach deinem Test alle Ressourcen zu löschen, damit dir keine Kosten entstehen.

Melde dich dann via SSH auf deinem Ubuntu-Server an und installiere zunächst das Paket ‚curl‘:

 $ apt-get install curl

Ich nutze ‚curl‘ dafür, ein Skript von Docker auszuführen, dass mir die Installation von Docker abnimmt (Faulheit – natürlich kannst du auch manuell die ganzen Pakete installieren).

Also, der Weg für faule 🙂 :

 $ curl https://get.docker.com | bash

Nun wird das Skript heruntergeladen, ergänzt ein paar Paketlisten, updatet diese auf deinem Server mit ‘apt-get update’ und installiert anschließend Docker sowie ein paar andere Pakete. Nachdem das Skript fertig ist, kannst du mit:

$ systemctl status docker

überprüfen, ob Docker einsatzbereit ist. Meine Ausgabe sieht wie folgt aus:

docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since So 2016-06-19 15:48:30 CEST; 17min ago
     Docs: https://docs.docker.com
 Main PID: 912 (docker)
    Tasks: 18
   Memory: 50.5M
      CPU: 533ms
   CGroup: /system.slice/docker.service
           ├─912 /usr/bin/docker daemon -H fd://
           └─931 docker-containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime docker-run

Wichtige Docker Kommandos

Nachdem du nun Docker erfolgreich installiert hast, geht es daran Docker zu bedienen. Es gibt dafür ein zentrales Kommando: ‘docker’

Rufst du docker ohne Parameter auf, erhältst du eine längere Liste von Parametern, die docker akzeptiert. Der Aufbau ist immer identisch:

docker [Option] [Kommando] [Argumente]

Möchtest du zu einer einzelnen Option weitere Hilfe erhalten, kannst du das Kommando docker wie folgt aufrufen

docker [Option] –help

Nun mal zum ersten Kommando. Schau dir einmal den Status deines Docker-Systems an, mit:

$ docker info

Du bekommst dabei ein paar Statistiken ausgegeben und kannst den Zustand deines Docker-Systems auslesen.

Installation eines Docker-Images

Nun versuche doch einfach mal, ein erstes Docker-Image zu installieren. Standardmäßig bedient sich Docker an einer Art zentralen Marktplatz für Docker-Images: Docker-Hub genannt. Dieser Docker-Hub wird von Docker selbst betrieben und steht jedem zur Verfügung um eigene Docker-Images zu publizieren. Inzwischen hat sich eine große Community um den Docker-Hub gebildet und es lohnt sich in jedem Fall mal einen Blick zu riskieren. Am Besten direkt Bookmarken: hub.docker.com

Eines der einfachsten Docker-Images heißt “hello world”. Installiere dir dieses Image um ein Gefühl für die Abläufe zu bekommen.

$ docker run hello-world

Die Ausgabe sollte der folgenden ähnlich sein:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
a9d36faac0fe: Pull complete 
Digest: sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.
…

Wenn du nun noch einmal ‘docker info’ aufrufst, dann erkennst du einen Unterschied zu vorher: Du hast deinen ersten Docker Container installiert.

Glückwunsch 🙂

Aber das war jetzt ja noch etwas langweilig. Mit dem folgenden Kommando kannst du auf dem Docker-Hub eine Suche ausführen, um ggf. weitere Container zu installieren.

$ docker search [Suchbegriff]

Such doch mal nach ‘wordpress’ – warte mit der Installation aber noch etwas.

MySQL mit Docker installieren

Damit du nachher ein WordPress installieren kannst, brauchst du zunächst eine Datenbank. Auch für Datenbanken und Co gibt es fertige Docker-Images. Manchmal erfordern diese Docker-Images allerdings eine weitergehende Konfiguration oder weitere Parameter. Im Regelfall gibt dir die Beschreibung der Docker-Images aber schon eine ausreichende Hilfestellung. Hier findest du z.B. die Beschreibung für MySQL

Nun zur Installation:

 

$ docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=meinkennwort -d mysql

 

Das Kommando macht jetzt folgendes:

  • zunächst wird geprüft, ob mysql bereits lokal vorliegt. Wenn nicht, versucht docker das Image vom Hub herunterzuladen.
  • Dann wird eine Instanz erzeugt, die den Namen “my-mysql” trägt.
  • Es wird dem Installations-Skript eine Umgebungsvariable geliefert (MYSQL_ROOT_PASSWORD=meinkennwort)
  • -d steht für detach – der Prozess läuft also im Hintergrund weiter
  • mysql ist der Name des Docker-Images

Nach dem o.s. Befehl kannst du überprüfen, ob deine MySQL-Instanz erfolgreich gestartet ist.

 

$ docker ps

 

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
1628664378aa        mysql               "docker-entrypoint.sh"   3 minutes ago       Up 3 minutes        3306/tcp            my-mysql

WordPress mit Docker installieren

Nun hast du ja schon etwas Übung. Fahre einfach mit der Installation von WordPress fort. Die entsprechenden Parameter findest du analog zu MySQL in der Beschreibung des Docker-Images von WordPress.

Zur Installation kannst du beispielsweise folgendes verwenden:

 

$ docker run --name my-wordpress --link my-mysql:mysql -p :8080:80 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=meinkennwort -d wordpress

 

Vermutlich fällt dir gerade auf, dass ich überall mit dem Benutzer ‘root’ arbeite. Das ist natürlich für produktive Umgebungen nicht empfehlenswert. Ich werde in einem separaten Beitrag auf die Rechtestruktur und auf Berechtigungskonzepte eingehen.

Bei der obigen Kommandozeile gibt es eine Besonderheit, die du anpassen musst.

‘-p <deine public IP>:8080:80’

Verwende hier einfach die öffentliche IP-Adresse deines Systems. Schau dir nun an, welche Docker-Images auf deinem Server laufen:

 

$ docker ps

 

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                        NAMES
7799bbeb6543        wordpress           "/entrypoint.sh apach"   About a minute ago   Up About a minute   <deine public IP>:8080->80/tcp   my-wordpress
522d5cde1779        mysql               "docker-entrypoint.sh"   5 minutes ago        Up 5 minutes        3306/tcp                     my-mysql

 

Das war es auch schon. Du kannst dein neues WordPress nun über die public IP erreichen. Vergiss nicht, dass der Port auf 8080 konfiguriert ist 🙂

Zusammenfassung

In diesem Artikel habe ich dich kurz und knapp durch die Installation von Docker wie auch die exemplarische Installation eines MySQL Servers zzgl. einer WordPress-Instanz geführt.

Docker ist natürlich noch viel mächtiger und kann um einiges mehr. Ich werde in späteren Artikeln noch etwas tiefer eintauchen und vor allen Dingen Berechtigungskonzepte, das Erstellen eigener Docker-Images, das Commiten von Änderungen sowie das Uploaden auf den Docker-Hub beleuchten.

Wenn dir in diesem Artikel etwas fehlt, schreib uns doch kurz eine Nachricht an team@gridscale.io.

Um was geht es bei Docker? Bei Docker handelt es sich um eine Open-Source-Software zur “Anwendungsverteilung”. Klingt erst einmal Abstrakt. Fand ich vor einiger Zeit auch und habe dann angefangen mich genauer mit Docker zu befassen. Jetzt möchte ich dir Docker gerne in diesem ersten Artikel näher bringen und dich bei deinen ersten Schritten mit […]

Schade, dass dir der Artikel nicht gefallen hat.
Was sollten wir deiner Meinung nach besser machen?

Vielen Dank für dein Feedback!
Wir melden uns bei dir, sobald der Artikel zu deinem Wunschthema fertig ist.

Übrigens: kennst du schon unser Tutorial zum Thema MySQL Master – Master Replikation?

×

Entwickler?

Dann einfach hier für unsere Tutorial-Updates anmelden.
Keine Sorge: Wir spammen dich nicht zu