Alpine Linux + Docker installieren
Vorwort
Ich war nie ein großer Fan von Linux, obwohl ich natürlich verstanden habe, was damit alles möglich ist. Meine Thema war immer, dass es gefühlt zu groß, zu umfangreich ist und alles nur mit Textdateien und Konsole konfiguriert werden muss.
Meinen Intel NUC habe ich schon seit einigen Jahren und auf diesem war immer schon Ubuntu ohne GUI installiert. Darauf liefen diverse node.js Anwendungen. Was sonst noch alles darauf gelaufen ist, weil dies beim Setup mitinstalliert wurde, kein Ahnung 🤷♂️.
Durch den Einsatz von Docker ist mein Interesse an Linux wieder gestiegen. Viele Docker Images basieren auf Alpine Linux, bei dem es sich um ein super kompaktes Linux handelt, das standardmäßig nur die wesentlichsten Dinge installiert hat. Genau das hat mich gereizt, mich mit dem Thema wieder etwas zu beschäftigen.
Mein Plan war zuerst Alpine auf einem Raspberry PI 3 B+ zu installieren. Das Resümee war dann doch etwas durchwachsen. Kaum hat etwas funktioniert und ich konnte zum nächsten Schritt übergehen, gab es wieder Probleme. Kurzum: es hat keinen Spaß gemacht.
Darum habe ich gestern meinen NUC platt gemacht und habe Ubuntu durch Alpine ersetzt. Nachdem ich jetzt schon dazu etwas schreiben kann, muss es wohl geglückt sein 😆.
Das Wesentliche
Erstmal eine aktuelle Version von https://alpinelinux.org/downloads/ runterladen. Ich habe die Version Standard x86_64 verwendet. Anschließend bin ich nach https://wiki.alpinelinux.org/wiki/Create_a_Bootable_USB vorgegangen und habe einen bootfähigen USB-Stick erstellt.
cd /tmp
wget http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/x86_64/alpine-standard-3.9.2-x86_64.iso
mv alpine-standard-3.9.2-x86_64.iso alpine.iso
Das heißt schauen, wie der Gerätename des USB-Sticks ist und dann mit ff das vorhin heruntergeladene iso-Image auf den USB-Stick übertragen.
fdisk -l
dd if=alpine.iso of=/dev/sdx && sync
Nach gefühlt 3 Minuten ohne Rückantwort war dies erledigt. NUC neu gestartet und dann … nichts. Ubuntu hat sich einfach wieder gestartet. Nun gut, vielleicht wird nicht vom USB-Stick gebootet. Im Bios war alles korrekt und im Boot-Setup konnte ich den Stick auch auswählen. Um es kurz zu fassen, der USB-Stick war nicht tauglich. Ich habe es dann mit einem anderen Stick probiert. Damit hat es geklappt 😊.
Als Benutzername bei der Erstanmeldung wird root verwendet, ohne Passwort. Anschließend kann das Setup gestartet werden:
setup-alpine
Den Bindestrich findet man auf der Englischen Tastatur übrigens auf dem scharfen s 😉. Nachfolgend die wesentliche Dinge, die ich während des Setups eingegeben habe (ev. stimmt die Reihenfolge nicht ganz):
de #Tastatur 2x
Europe/Vienna #Zeitzone
eth0 #Netzwerkschnittstelle
dhcp #IP über DHCP beziehen
chrony #NTC zur Ermittlung der aktuellen Zeit
openssh #SSH Server
sys #Linux auf Festplatte installieren inkl. Partitionierung der Festplatte
reboot #Als das Setup dann fertig war
Nach dem Neustart habe ich Docker installiert (https://wiki.alpinelinux.org/wiki/Docker). Dazu muss ein wenig Vorarbeit gemacht werden.
apk update
apk add nano #der Standardeditor VI überfordert mich ...
nano /etc/apk/repositories
Dort bei Zeile (glaub 3) mit Endung Community die Raute entfernt, damit das Repository verwendet wird.
Ctrl+S #zum Speichern
Ctrl+W #um Nano zu schließen
apk update
apk add docker
rc-update add docker boot #Damit Docker beim Booten startet wird
rc-service docker start #um Docker jetzt sofort zu starten
Anschließend noch docker-compose installieren.
apk add py-pip
apk add python-dev libffi-dev openssl-dev gcc libc-dev make
pip install docker-compose
Wer dem root-Benutzer jetzt noch die Rechte für den Zugriff mittels ssh geben möchte, muss folgendes machen:
nano /etc/ssh/sshd_config
In der Datei dann den Eintrag „PermitRootLogin“ auf yes stellen und aktivieren. Anschließend muss der SSH-Dienst neu gestartet werden:
service sshd restart
That’s it. Wir haben ein installiertes Linux mit Docker. Das ganze dauert (wenn der USB-Stick nicht gewesen wäre) ca. 12,5 Minuten.