Docker is essential for running containerized applications. This guide covers multiple methods for running Docker on Proxmox VE.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/community-scripts/ProxmoxVE/llms.txt
Use this file to discover all available pages before exploring further.
Installation Methods
Alpine Docker LXC
Lightweight Container
- Minimal resource usage
- Fast deployment
- Best for: Simple Docker workloads
Docker VM
Full Virtual Machine
- Complete isolation
- Multiple OS options
- Best for: Production environments
Alpine Docker Container (LXC)
Quick Installation
Container Configuration
Default settings:
- CPU: 1 core
- RAM: 1024 MB
- Disk: 2 GB
- OS: Alpine 3.23
- Unprivileged: Yes
Why Alpine?
Lightweight
Base container ~50 MB vs 300+ MB for Ubuntu
Secure
Minimal attack surface with fewer packages
Fast
Quick startup and low resource usage
Docker VM (Full Installation)
For production workloads, a full VM provides better isolation and flexibility.Quick Installation
Choose Operating System
Select from:
- Debian 13 (Trixie) - Latest
- Debian 12 (Bookworm) - Stable (recommended)
- Ubuntu 24.04 LTS - Long-term support
- Ubuntu 22.04 LTS - Older LTS
Cloud-Init Configuration
Enable Cloud-Init for:
- Automatic user setup
- SSH key injection
- Network configuration
- First-boot customization
Default VM Configuration
| Setting | Default Value |
|---|---|
| VM ID | Next available |
| Machine Type | Q35 (Modern) |
| Disk Size | 10 GB |
| Hostname | docker |
| CPU Model | Host |
| CPU Cores | 2 |
| RAM | 4096 MB |
| Network | vmbr0 |
Docker Configuration
Optimized Daemon Settings
The scripts automatically configure Docker with optimized settings:/etc/docker/daemon.json
overlay2 is the recommended storage driver for performance and stability.
Verify Docker Installation
- LXC Container
- VM
Running Docker Containers
Basic Container Management
Docker Compose
Docker Compose is pre-installed in VMs. For Alpine containers:docker-compose.yml:
Storage Configuration
Persistent Volumes
For data persistence, use Docker volumes:Bind Mounts
Mount host directories:Increasing Disk Space
- LXC Container
- VM
Networking
Container Networking
Bridge Network
Default Docker network
Host Network
Use host’s network stack
Port Mapping
Macvlan Network
For containers to appear as separate devices on network:Docker Management Tools
Portainer
Web-based Docker management:http://<ip>:9000
Dockge
Docker Compose management UI:Yacht
Container management for beginners:Performance Optimization
CPU Limits
Limit CPU usage:Memory Limits
Storage Optimization
Security Best Practices
Use Unprivileged Containers
Read-Only Filesystem
Limit Capabilities
Use Secrets
Rootless Docker
For enhanced security, run Docker without root:Backup and Restore
Backup Containers
- Commit Container
- Backup Volumes
Restore from Backup
Proxmox-Level Backup
Troubleshooting
Docker daemon not starting
Docker daemon not starting
Check service status:Restart Docker:
Permission denied errors
Permission denied errors
Add user to docker group:Or use sudo:
Out of disk space
Out of disk space
Check Docker disk usage:Clean up:Resize container/VM disk
Network connectivity issues
Network connectivity issues
Restart networking:Check iptables:
Advanced Topics
Docker Swarm
For container orchestration:Custom Docker Registry
Run a private registry:Docker BuildKit
Enable BuildKit for faster builds:Next Steps
Popular Apps
Explore pre-configured applications
Networking
Advanced network configuration
Security
Harden your Docker setup