mirror of
https://github.com/DoTheEvo/selfhosted-apps-docker.git
synced 2026-07-03 14:06:40 +02:00
Portainer in docker
guide-by-example
Purpose
Web GUI for overview and management of docker environment.
Lightweight management web UI, that allows to easily manage docker containers, networks, volumes, images,... the work.
In my use it is mostly information tool, rather than a management tool.
Files and directory structure
/home/
└── ~/
└── docker/
└── portainer/
├── portainer_data/
├── .env
└── docker-compose.yml
portainer_data/- a directory where portainer stores its peristent data.env- a file containing environment variables for docker composedocker-compose.yml- a docker compose file, telling docker how to run the containers
You only need to provide the files.
The directory is created by docker compose on the first run.
docker-compose
docker-compose.yml
services:
portainer:
image: portainer/portainer-ce
container_name: portainer
hostname: portainer
command: -H unix:///var/run/docker.sock
restart: unless-stopped
env_file: .env
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./portainer_data:/data
expose:
- "9443"
networks:
default:
name: $DOCKER_MY_NETWORK
external: true
.env
# GENERAL
DOCKER_MY_NETWORK=caddy_net
TZ=Europe/Bratislava
reverse proxy
Caddy v2 is used, details
here.
Caddyfile
port.example.com {
reverse_proxy portainer:9443 {
transport http {
tls
tls_insecure_skip_verify
}
}
}
Update
Manual image update:
docker-compose pulldocker-compose up -ddocker image prune
Backup and restore
Backup
Using borg that makes daily snapshot of the entire directory.
Restore
- down the portainer container
docker-compose down - delete the entire portainer directory
- from the backup copy back the portainer directory
- start the container
docker-compose up -d
