Skip to main content

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.
TypeCommand
Startdocker compose up portainer -d
Shutdowndocker compose down portainer

Dashboard

portainer

Containers

portainer-containers
  • Once started, Portainer should be hit from this url
URL
Non-SSLhttp://localhost:9000
SSL (unsecured without a cert)https://localhost:49443
Imageportainer/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"