๐ณ Docker โ My App Container Factory
Docker is at the heart of how I manage and deploy applications across my HomeLab and development environments. I use a dedicated Proxmox VM as my Docker host, which serves as a centralized container management system.
๐๏ธ My Setup
Inside my Proxmox cluster, Iโve provisioned a lightweight VM (Debian-based) that runs the Docker engine. This VM is always online, and it's where I deploy:
- ๐งพ Self-hosted services (e.g., Pi-hole, Jellyfin, Nginx)
- ๐งช Dev containers for testing new apps
- ๐ฆ Shared tools like Redis, PostgreSQL, MongoDB
๐ฅ๏ธ Portainer for Visual Management
I manage most of my containers usingPortainer, which runs as a Docker container itself. It provides a clean web UI to:
- โ Start/Stop/Restart containers easily
- ๐ View logs, stats, and terminal access
- ๐ Monitor container health and resource usage
- ๐ Deploy new stacks using docker-compose in the browser
I access Portainer using my internal network via http://192.168.1.8:9000. It's fast, lightweight, and makes container management smooth even from my phone.
๐ Project-Based Containers
For each project, I spin up services in isolated Docker containers using a `docker-compose.yml` file. This ensures every app has a clean, reproducible environment. I also bind custom ports and volumes to manage persistent data and networking.
Example: My OCR service runs in a dedicated container and exposes an API on port 5000, used by other services in my home network.
๐ Secure & Efficient
The Docker VM is only accessible via SSH, and I expose only necessary ports to the local network. I also back up important container volumes weekly using cron jobs.