Having trouble with CasaOS and Docker after an update? You’re not alone. This post covers new fixes—especially for LXC/Proxmox users—and includes a handy script to resolve recent Docker API and AppArmor permission errors.
Backup your data before running.
Common Errors
Some headaches you might see:
Error response from daemon: client version 1.43 is too old. Minimum supported API version is 1.44OCI 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- Docker permission issues, especially on overlay2 storage
- NEW: CVE-2025-52881 AppArmor failures after updating containerd in LXC or Proxmox environments
Why This Happens
These errors occur after:
- Docker is auto-upgraded to a new version (API 1.44+) but CasaOS still needs the older 1.43 API.
- Overlay2 filesystem permissions become corrupted or runtime state isn’t clean.
- AppArmor breaks containerd in LXC/Proxmox due to the CVE-2025-52881 security patch.
Special Note for LXC/Proxmox
If you run CasaOS or Docker inside LXC under Proxmox, you may now encounter:
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
This is caused by the latest containerd updates conflicting with nested AppArmor.
References:
The All-in-One Fix Script
This script detects and corrects the most common issues on Debian/Ubuntu systems—including LXC/Proxmox quirks!
It:
- Detects your OS and LXC environment
- Downgrades Docker to 24.0.7 (API 1.43)
- Downgrades containerd in LXC to 1.7.28-1 (pre-AppArmor breakage)
- Cleans up Docker runtime, overlay2 permissions, stale state
- Restarts both Docker and CasaOS safely
- Holds Docker packages to prevent auto-updates
- Removes standalone docker-compose; installs the plugin version
Run it here:
bash -c "$(wget -qLO - https://raw.githubusercontent.com/bigbeartechworld/big-bear-scripts/master/casaos-fix-docker-api-version/run.sh)"
If GitHub Isn’t Reachable (Domain Blocked)
- Copy run.sh to your server.
- Save as
run.sh - Execute:
bash run.sh
After Running the Script
Check your Docker status:
docker version
Both client and server should now show a compatible API version (1.43).
Preventing Future Trouble
Packages are held! This stops apt from auto-upgrading and breaking CasaOS:
sudo apt-mark hold docker-ce docker-ce-cli containerd.io
Proxmox/LXC Tip: Do NOT upgrade containerd until AppArmor is fixed upstream. See:
If you need to unhold later:
sudo apt-mark unhold docker-ce docker-ce-cli containerd.io
Advanced: Alternative AppArmor Solutions (LXC/Proxmox)
If you don’t want to downgrade containerd, try these in /etc/pve/lxc/$CTID.conf:
Option 1: Disable AppArmor for Container
lxc.apparmor.profile: unconfined
lxc.mount.entry: /dev/null sys/module/apparmor/parameters/enabled none bind 0 0
Option 2: Wait for upstream fixes in Proxmox, containerd, or runc.
The script uses the downgrade method, which is safe and doesn’t require host changes.
Requirements
- Debian/Ubuntu system
- Sudo/root access
- Internet connection
- CasaOS (optional—the script works even if not installed)
Versions Used/Installed
- Docker CE: 24.0.7
- Docker API: 1.43 (CasaOS compatible)
- containerd.io: 1.7.28-1 (LXC/Proxmox)
- Should work with CasaOS latest version
Support This Work
If this script saved you time or fixed your setup, consider supporting more free tools and tutorials: