Proxmox-VM mit debian 10 (buster).
d.h. das Image debian-10.{VERSION}-amd64-xfce-CD-1.iso
muss in proxmox zur Verfügung stehen (beim Erstellen dieser Doku: VERSION=4.0).
Achtung: i386 geht nicht, es muss zwingend amd64 sein!
Damit ich mich wohl fühle, installiere ich folgende Pakete nach dem ersten Neustart:
apt-get install \ ssh attr acl ntp postfix mouspad \ mc joe unrar arj p7zip \ cifs-utils nfs-common
Und da ich mit bash arbeite, stelle ich den Default um
dpkg-reconfigure dash
auf docker.com
alle weiteren Schritte als ROOT (z.bsp mit "su -" oder jeweils vorangestelltem "sudo")
Notwendige Pakete installieren:
apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
GPG-Key installieren:
curl -fsSL \ https://download.docker.com/linux/debian/gpg \ | apt-key add -
Repository aktivieren:
add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ stable"
Docker installieren
apt-get update apt-get install docker-ce docker-ce-cli containerd.io
Docker-Compose installieren
curl -L \ https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m) \ -o /usr/bin/docker-compose chmod +x /usr/bin/docker-compose
Ich gebe der VM eine zweite Netzwerk-Schnittstelle. Die erste wurde bei der Installation auf dhcp gesetzt und erhlält eine interne IP. Die neue wird auf die externe Schnittstelle gebunden und in der VM mit einer fixen IP aus meinem Range versehen.
Bei debian mit xfce werden die Interfaces durch den Network-Manager verwaltet, ausser sie werden in /etc/network/interaces definiert:
auto ens18
iface ens18 inet dhcp
auto ens19
iface ens19 inet static
address 212.254.31.37
netmask 255.255.255.240
gateway 212.254.31.33
der erste Block kann auch weggelassen werden, dann wird das Interface durch den Network-Manager verwaltet - was im Standard auch dhcp ist.
oder beide fix:
auto ens18
iface ens18 inet static
address 192.168.11.37
netmask 255.255.255.0
auto ens19
iface ens19 inet dhcp
address 212.254.31.37
netmask 255.255.255.240
gateway 212.254.31.33
Der Name der Interfaces kann abweichen sein!
Zum testen nehme ich das Beispiel aus Docker & Co (neuauflage 2020) des Heise-Verlages (Seite 50, Container mit Compose einrichten), zu finden auf ct.de.
Ich erstelle ein Verzeichnis "~/docker" und lege hier das "docker-compose.yml" als "wp.yml" ab. Das entprechende wp.yml.
version: '3.7'
services:
db:
image: mysql:5.7
volumes:
- ./data/mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: sehr_geheim
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress_user
MYSQL_PASSWORD: 123wordpress
wp:
depends_on:
- db
image: wordpress:4-php7.2-apache
volumes:
- ./data/wp/themes:/var/www/html/wp-content/themes/
- ./data/wp/uploads:/var/www/html/wp-content/uploads/
ports:
- "8001:80"
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress_user
WORDPRESS_DB_PASSWORD: 123wordpress
Sinvollerweise bitte die Zugangsdaten ändern!
Mit folgenden Skript steuere ich diese WordPress-Instanz:
#! /bin/bash
OPT="-f wp.yml"
case "$1" in
start)
docker-compose ${OPT} up -d
;;
stop)
docker-compose ${OPT} stop
;;
log)
docker-compose ${OPT} logs
;;
esac
Wichtig: in der Wordpress-Konfiguration (im Firefox auf der VM erreichbar unter "localhost:8001") nach der Grund-Konfiguration in den "Settings" von "localhost" auf die externe IP umstellen, andernfalls lässt sich die Seite von aussen nicht nutzen!
Aktuell ist 5-php7.4-apache anstelle von 4-php7.2-apache. Mir ist es nicht gelungen, das system direkt damit zu starten - es fehlt dann das aktuelle Template!. Deshalb Grundinstallation nach doku, anschliessend stoppen, auf die neue version ändern und neu starten. Jetzt haben wir zu viele templates die NICHT aktuell sind. Deshalb alle ausser dem aktiven "tewntyseventeen" aus "data/wp/themes/" rauslöschen.
Für einen zweiten Test empfehle ich das Beispiel aus Docker & Co (neuauflage 2020) des Heise-Verlages (Seite 68, HTTP-Verkehr mit Traefik routen), zu finden auf ct.de.
Bestellt werden kann das PDF oder Heft im Heise Shop