Skip to content
AFCOMP
← Build log

Deploying Docker Services With Portainer

dockerportainerhomelab

Moving From Containers to Infrastructure

After setting up my Ubuntu Server VM, the next step was figuring out the best way to manage applications.

Instead of installing every service directly onto Linux, I decided to use Docker containers.

Docker makes it easier to deploy applications, keep them separated, and recreate them if something goes wrong.

Docker Structure

I organized my services into separate folders:

/data/docker/
├── portainer
├── immich
├── nginx-proxy-manager
└── website

Each service has its own Docker Compose configuration.

This keeps everything organized and makes it easier to move, backup, and rebuild services.

Using Portainer

Portainer provides a web interface for managing Docker.

It allows me to:

  • View running containers
  • Check logs
  • Manage images
  • Monitor resources
  • Restart services

While the command line is still important, having a visual management tool makes everyday administration easier.

The Importance of Persistent Storage

One challenge I ran into was understanding Docker volumes.

Originally, application data was stored inside Docker-managed volumes. I moved important data into dedicated storage paths so that my services are easier to backup and migrate.

This taught me an important lesson:

A container can be replaced. The data cannot.

Lessons Learned

This project helped me understand:

  • Docker Compose
  • Container networking
  • Persistent storage
  • Service management
  • Troubleshooting through logs

A lot of system administration comes down to knowing how to investigate problems instead of just reinstalling everything.

← All entries