Containervirtualisierung mit Docker und Docker-Compose, einfach und schnell

Die Vorteile von virtuellen Servern sind mitlerweile weitläufig bekannt. Etwas neuer sind die Containervirtualisierungen einzelner Anwendungen. Genauer beschreibt es Wikipedia.

Kurz zusammengefasst: Wo ich früher einen Apache Webserver, PHP, eine SQL-Datenbank, eigene Zertifikate und weiteres per Hand installieren und einrichten musste, was durchaus mehrere Stunden Zeit beanspruchte, kann ich mit der Containervirtualisierung alles mit fast einem Befehl starten. Auch das aktualisieren oder verschieben von Containern auf andere Hostsysteme ist sehr schnell umgesetzt. Insgesamt ist das Handling und der Umgang im täglichen Betrieb mit Containern wesentlich einfacher als alle Komponenten einzelnt zu installieren und konfigurieren.

Docker dienst dabei als Basis um Container überhaupt zu erstellen und verwalten zu können. Docker-Compose dient als Multi-Container-Verwaltung. Im oben genannten Beispiel eines LAMP-Stacks, benötigt man einen Apache Webserver Container, einen SQL Container und so weiter. Diese einzelnen Container kann ich mit Compose locker in einer einzigen Datei niederschreiben. Super easy!

In diesem Post findet ihr lediglich die Installation von Docker und Docker-Compose. Einzelne Docker-Compose Rezepte findet ihr in verschiedenen Posts auf diesem Blog. Wichtig ist es einen Reverse-Proxy aufzusetzen. Dieser sorgt dafür, dass alle Container im Web unter verschiedenen Domains, mit schönen Lets Encrypt Zertifikaten, erreichbar sind. Die Einrichtung zeige ich euch in folge Posts.

Genug geschwafelt, hier die Installation von Docker und Docker-Compose unter Debian (Weitere Distributionen):

apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
    
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -

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

apt-get install docker-ce docker-ce-cli containerd.io

curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Testen könnt ihr alles mit den beiden Befehlen:

docker -v

docker-compose --version

Jetzt fehlen nur noch einzelne Dienste und Container. Anfangs am besten einen Reverse-Proxy einrichten, damit später alles schön und sauber mit HTTPS erreichbar ist.