Container Management
Information
This solution ships with Portainer
- if you want to convert this to use minikube
or some other solution then please do what you want!
Portainer
- Portainer is just a web UI for managing your containers on a remote server (like on a linux server or a headless raspberry pi).
- Portainer CE is free to use and is a great alternative when docker desktop isn't available due to a remote system being used.
- It will look at your current running containers on your docker host and basically be exactly like Docker Desktop on a remote machine.
- Just Portainer Commands
- Portainer is a web client for managing your docker host containers, images, volumes, and networking, and much more.
Type | Command |
---|---|
Start | docker compose up portainer -d |
Shutdown | docker compose down portainer |
Dashboard

Containers

- Once started, Portainer should be hit from this url
URL | |
---|---|
Non-SSL | http://localhost:9000 |
SSL (unsecured without a cert) | https://localhost:49443 |
Image | portainer/portainer-ce |
Portainer Docker Compose Example
services:
### Container management Web UI
portainer:
container_name: ${PORTAINER_CONTAINER_NAME}
image: portainer/portainer-ce:latest
env_file:
- ./.env
- ../../.env
ports:
- ${PORTAINER_HOST_PORT}:9000 # webui for portainer (http)
- ${PORTAINER_HOST_PORT_SSL}:9443 # webui for portainer (https)
volumes:
- ${DEFAULT_CONTAINER_DATA_LOCATION}/Portainer:/data
- /var/run/docker.sock:/var/run/docker.sock
- ${DEFAULT_CONTAINER_DATA_LOCATION}/ssl:/ssl
labels:
- "traefik.enable=true"
- "traefik.http.routers.${PORTAINER_CONTAINER_NAME}.rule=Host(`${PORTAINER_CONTAINER_NAME}.${PROJECT_HOSTNAME}`)"
- "traefik.http.routers.${PORTAINER_CONTAINER_NAME}.entrypoints=https"
- "traefik.http.routers.${PORTAINER_CONTAINER_NAME}.tls=true"
- "traefik.http.services.${PORTAINER_CONTAINER_NAME}.loadbalancer.server.port=${PORTAINER_HOST_PORT}"
## Middlewares
###### PORTAINER HAS OAUTH BUILT IN SO THIS ISN'T NEEDED - https://docs.goauthentik.io/integrations/services/portainer/
# - ${PORTAINER_AUTHENTIK_MIDDLEWARE:-}
restart: unless-stopped
networks:
- homelab
profiles:
- all
- portainer
Portainer Example .env
file
PORTAINER_CONTAINER_NAME="portainer"
PORTAINER_HOST_PORT="9000"
PORTAINER_HOST_PORT_SSL="49443"