Docker ist eine Betriebsystemvirtualisierung mit der Programme in Containern isoliert werden können. Damit ist es z.B. möglich mehrere Versionen eines Programms gleichzeitig laufen zu haben, ohne dass sich die Abhängigkeiten von Bibliotheken in die Quere kommen. Auch ist es möglich Dienste auf mehreren Servern für die Lastverteilung laufen zu lassen.
Benötigte Pakete installieren
Folgende Pakete werden für die Installation von Docker benötigt.
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
Paketquelle hinzufügen
Da sich die aktuelle Version von Docker für den Raspberry PI nicht im Repository von Raspbian verfügbar ist, muss das Repository von Docker hinzugefügt werden.
echo "deb [arch=armhf] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list deb [arch=armhf] https://download.docker.com/linux/debian jessie stable
GPG-Schlüssel hinzufügen
Damit die Pakete aus dem Repository von Docker geprüft werden können muss noch der GPG-Key von Docker hinzugefügt werden.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0EBFCD88 Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.GxywGQP9oU --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv-keys 0EBFCD88 gpg: fordere Schlüssel 0EBFCD88 von hkp-Server keyserver.ubuntu.com an gpg: Schlüssel 0EBFCD88: Öffentlicher Schlüssel "Docker Release (CE deb)" importiert gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1 gpg: importiert: 1 (RSA: 1)
Paketquellen aktualisieren
Damit die neuen Pakete per apt gesucht und installiert werden können, müssen die neuen Paketinformationen geladen werden.
sudo apt update
Docker installieren
sudo apt install docker-ce Paketlisten werden gelesen... Abhängigkeitsbaum wird aufgebaut.... Statusinformationen werden eingelesen.... Die folgenden zusätzlichen Pakete werden installiert: aufs-tools cgroupfs-mount git git-man libapparmor1 liberror-perl libltdl7 rsync Vorgeschlagene Pakete: git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Die folgenden NEUEN Pakete werden installiert: aufs-tools cgroupfs-mount docker-ce git git-man libapparmor1 liberror-perl libltdl7 rsync 0 aktualisiert, 9 neu installiert, 0 zu entfernen und 3 nicht aktualisiert. Es müssen 21,1 MB an Archiven heruntergeladen werden. Nach dieser Operation werden 99,6 MB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] j …
Installation testen
Hier starten wir das Image hypriot/armhf-hello-world um zu testen, ob Docker korrekt funktioniert.
Da viele Docker-Images für Prozessoren für x86 mit 32 bit oder 64 bit erstellt wurden, muss beim Download von neuen Images darauf geachtet werden, dass diese auch mit dem im Raspberry PI verwendeten ARM-Prozessor kompatibel sind. In folgenden Image ist dies durch „armhf“ im Namen gekennzeichnet. Leider stellt Docker erst beim starten des Containers fest, ob die darin enthaltenen Programme mit der verwendeten CPU kompatibel sind.
sudo docker run hypriot/armhf-hello-world Unable to find image 'hypriot/armhf-hello-world:latest' locally latest: Pulling from hypriot/armhf-hello-world 4b84770bb49c: Pull complete a3ed95caeb02: Pull complete Digest: sha256:b618ec0cc3acf683e8d77ad6c5ec81546cddde2036eda9a78f628effdeca74cd Status: Downloaded newer image for hypriot/armhf-hello-world:latest Hello from Docker. This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker Hub account: https://hub.docker.com For more examples and ideas, visit: https://docs.docker.com/userguide/
Benutzer in die Gruppe „docker“ hinzufügen
Da auch andere Benutzer als root Docker steuern können sollen, muss der jeweilige Benutzer in die Gruppe docker hinzugefügt werden. Sollte dieser Benutzer am System angemeldet sein, so muss sich dieser neu anmelden, damit diese die Rechte wirksam werden.
sudo usermod -a -G docker blar
Benutzer testen
Jetzt starten wir noch einmal das Image hypriot/armhf-hello-world um zu testen, ob der hinzugefügte Benutzer Docker ohne sudo verwenden darf.
docker run hypriot/armhf-hello-world Hello from Docker. This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker Hub account: https://hub.docker.com For more examples and ideas, visit: https://docs.docker.com/userguide/
[…] werden können, soll jetzt PHP installiert werden, damit auch Scripts möglich sind. Im Artikel Docker auf dem Raspberry PI installieren wurde dafür Docker eingerichtet, das in dieser Anleitung für die Einrichtung von PHP verwendet […]