Установка Portainer в Docker (Вариант 2)
Portainer в Docker — самый правильный и современный вариант 2025 года
(одним файлом docker-compose.yml + HTTPS + Nginx Proxy Manager / Caddy)
«Золотой стандарт» 2025 года — именно так ставят 99 % людей:
mkdir -p ~/portainer && cd ~/portainer
# docker-compose.yml — вечная классика 2025
cat > docker-compose.yml << 'EOF'
version: "3.9"
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: unless-stopped
security_opt:
- no-new-privileges:true
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- data:/data
ports:
- "9000:9000" # веб-интерфейс
- "9443:9443" # HTTPS (встроенный в Portainer)
- "8000:8000" # для Edge Agent (если будешь подключать удалённые хосты)
environment:
- TZ=Europe/Moscow
# (Опционально) Caddy — сразу HTTPS на 443 → Portainer
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
volumes:
data:
caddy_data:
caddy_config:
EOF
# Caddyfile — автоматический Let’s Encrypt
cat > Caddyfile << 'EOF'
portainer.твой-домен.рф {
reverse_proxy localhost:9443
tls admin@твой-домен.рф
}
EOF
docker compose up -d
Готово!
Через 30–60 секунд будет доступно сразу два адреса:
https://portainer.твой-домен.рф — с нормальным сертификатом
https://IP-сервера:9443 — встроенный HTTPS Portainer
http://IP-сервера:9000 — старый порт (можно закрыть)
Первый вход (2025)
Логин: admin
Пароль: минимум 12 символов
Сразу снимай галочку «Send anonymous usage statistics»
Полезные команды 2025
# Обновить Portainer до последней версии
docker compose pull && docker compose up -d
# Полные логи
docker compose logs -f portainer
# Полный бэкап (одна команда)
docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine tar -czf /backup/portainer-backup-$(date +%F).tar.gz -C /data .
# Восстановление
docker compose down
docker run --rm -v portainer_data:/data -v ./portainer-backup-2025-12-01.tar.gz:/backup.tar.gz alpine sh -c "tar -xzf /backup.tar.gz -C /data --strip-components=1"
docker compose up -d
Полное удаление (если вдруг надо)
cd ~/portainer
docker compose down -v --remove-orphans
docker volume rm portainer_data portainer_caddy_data portainer_caddy_config
docker rmi portainer/portainer-ce caddy:2-alpine