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.

Wenn Du direkt über neue Posts informiert werden, willst: einfach per Mail abbonieren