Proxmox 9, Docker und AppAmor
Nachdem ich spaßeshalber meinen Proxmox abgeschossen habe, okay es war ein Hardwareschaden, und daher neu aufsetzen musste gabs ein Problem.
In den LXC Containern wollten die Docker-Container nicht mehr starten.
Also hab ich mich auch die Suche gemacht und heraus gefunden, dass unter Debian 13 Trixie AppAmor immer dazwischen funkt und dafür sorgt, dass es immer wieder diesen Fehler gab:
Error response from daemon:
failed to create task for container: failed to create shim task:
OCI runtime create failed: runc create failed: unable to start container process: error during container init:
open sysctl net.ipv4.ip_unprivileged_port_start
file: reopen fd 8: permission denied
Die Lösung war, nachdem ich ein wenig danach gesucht habe, dass ich in jeden Container bzw. in die Config das hier eintragen musste:
- lxc.apparmor.profile: unconfined
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0
nano /etc/pve/lxc/$CONTAINER.conf
Aber weil ich faul bin, habe ich einfach ein bzw. zwei kleine Scripts geschrieben, die mir das einfach in jeden, auch neuen Container, rein dingsen:
nano /usr/local/sbin/pve-lxc-docker-apparmor-fix.sh
#!/bin/bash
set -e
CONF_DIR="/etc/pve/lxc"
for conf in "$CONF_DIR"/*.conf; do
[ -e "$conf" ] || continue
# Zeile 1: AppArmor unconfined
if ! grep -q "^lxc.apparmor.profile:" "$conf"; then
echo ">>> Patching $conf: lxc.apparmor.profile: unconfined"
echo "lxc.apparmor.profile: unconfined" >>"$conf"
fi
# Zeile 2: AppArmor-Enabled-Flag überschreiben
if ! grep -q "^lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled" "$conf"; then
echo ">>> Patching $conf: lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0"
echo "lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0" >>"$conf"
fi
done
und dann: /etc/systemd/system/pve-lxc-docker-apparmor.service erstellen
[Unit]
Description=Ensure Proxmox LXC have AppArmor workaround for Docker
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/pve-lxc-docker-apparmor-fix.sh
und zuletzt: /etc/systemd/system/pve-lxc-docker-apparmor.timer
[Unit]
Description=Run Proxmox LXC AppArmor workaround regularly
[Timer]
OnBootSec=2min
OnUnitActiveSec=1min
Persistent=true
[Install]
WantedBy=timers.target
die .sh ausführbar machen (chmod +x /usr/local/sbin/pve-lxc-docker-apparmor-fix.sh) und die beiden Services enablen und starten.
Nun bekommen die LXC Container ihre "Docker-Rechte" und neue Container, die erstellt werden ebenso... weniger Arbeit für mich, mehr Zeit für Docker.