Пълно ръководство за инсталиране на Docker и Portainer на VPS

За това упражнение ще използвам VPS сървър от Hetzner, но описаните стъпки са приложими и при други доставчици като DigitalOcean, Linode, AWS или Google Cloud.
Избор на VPS доставчик
Лично използвам Hetzner заради доброто съотношение между цена и производителност.
Ако искате да го изпробвате, можете да получите 20€ бонус при регистрация тук.
📋 Въведение и предпоставки
Преди да започнем, нека разберем защо тази комбинация е мощна. Docker контейнеризира приложенията ви в леки, преносими пакети. Portainer предоставя визуален интерфейс за управление на Docker.
Имате нужда от:
- Нов VPS с Ubuntu 20.04 LTS или по-нова версия
- SSH достъп до сървъра
- Поне 1 GB RAM (2 GB препоръчително)
- Root права или потребител с sudo привилегии
🔧 Стъпка 1: Подготовка на VPS
Свързване със сървъра
След като активирате VPS, свържете се през SSH:
ssh root@вашият_ip_адрес
Ако използвате потребител вместо root:
ssh потребител@вашият_ip_адрес
Актуализиране на системата
Винаги започнете с актуализация:
sudo apt update
sudo apt upgrade -y
След актуализацията рестартирайте, ако е необходимо:
sudo reboot
🐳 Стъпка 2: Инсталиране на Docker
Изтеглете скрипта:
curl -fsSL https://get.docker.com -o install-docker.sh
Стартирайте скрипта като root:
sudo sh install-docker.sh
Проверка на инсталацията
Проверете дали Docker работи правилно:
Изпълнете тестови контейнер:
sudo docker run hello-world
Ако видите "Hello from Docker!", инсталацията е успешна! ✅
Настройване на Docker без sudo (опционално)
За удобство, добавете вашия потребител към docker групата:
sudo usermod -aG docker ${USER}
За да влязат промените в сила, излезте и влезте отново в SSH сесията.
🖥️ Стъпка 3: Инсталиране на Portainer CE
Portainer Community Edition (CE) е безплатен и с отворен код.
Създаване на Docker volume за Portainer
Portainer изисква том за съхранение на данни:
docker volume create portainer_data
Стартиране на Portainer контейнер
Изпълнете следната команда:
docker run -d -p 8000:8000 -p 9443:9443 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Обяснение на параметрите:
-d– стартира контейнера във фонов режим-p 8000:8000 -p 9443:9443– пренасочва портове--name portainer– име на контейнера--restart=always– автоматично рестартиране-v– монтира томовете за данниportainer/portainer-ce:latest– образ на Portainer
Проверка на Portainer контейнера
Проверете дали контейнерът работи:
docker ps
Трябва да видите Portainer в списъка с контейнери. 🎉
🔐 Стъпка 4: Настройка на защита
Настройване на SSL сертификат (опционално)
За производствена среда, използвайте SSL. Portainer поддържа LetsEncrypt.
Конфигуриране на защитен вход
При първия достъп до Portainer ще създадете администраторски акаунт.
Ограничаване на достъпа по IP (препоръчително)
Добавете правила към защитната стена:
sudo ufw allow 22/tcp # SSH
sudo ufw allow 9443/tcp # Portainer HTTPS
sudo ufw enable
🌐 Стъпка 5: Първи вход в Portainer
Достъп до Portainer интерфейса
Отворете браузър и навигирайте до:
https://вашият_ip_адрес:9443
⚠️ Предупреждение: Браузърът може да предупреди за самоподписан сертификат. Това е нормално.
Начална настройка
- Създайте администраторски потребител
Въведете потребителско име и силна парола - Изберете среда за свързване
Изберете "Get Started" и след това "Local" за управление на локалния Docker - Запознайте се с интерфейса
Portainer вече е готов за употреба! 🚀
📊 Стъпка 6: Основни операции с Portainer
Управление на контейнери
В Portainer можете:
- 📦 Преглед на всички контейнери
- ▶️ Стартиране/спиране на контейнери
- 🔄 Рестартиране и пресъздаване
- 👀 Преглед на логове в реално време
- ⚙️ Редактиране на настройки
Работа с Docker образи
- 📥 Изтегляне на нови образи от Docker Hub
- 🗑️ Изтриване на стари образи
- 🏷️ Управление на тагове
Създаване на Docker мрежи и томове
Portainer опростява създаването на:
- 🌐 Потребителски Docker мрежи
- 💾 Постоянни томове за данни
🚀 Стъпка 7: Разширени настройки
Инсталиране на Portainer Agent
За управление на множество хостове, инсталирайте Portainer Agent:
docker run -d -p 9001:9001 \
--name portainer_agent --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:latest
Автоматично обновяване на контейнери
За автоматично обновяване, използвайте Watchtower:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--interval 300
Резервно копие на Portainer данни
Създайте резервно копие на том с данни:
docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine \
tar czf /backup/portainer-backup-$(date +%Y%m%d).tar.gz -C /data .
🛠️ Стъпка 8: Отстраняване на често срещани проблеми
Portainer не се стартира
Проверете логовете:
docker logs portainer
Недостатъчна памет
Ако контейнерите спират неочаквано:
docker stats
Добавете swap файл ако е необходимо.
Проблеми с мрежата
Проверете дали портовете са отворени:
sudo netstat -tulpn | grep LISTEN
📈 Добри практики за производствена среда
Мониторинг и логване
- Използвайте
docker statsза мониторинг на ресурсите - Конфигурирайте централизирано логване
- Настройте аларми за висока използваемост на ресурси
Сигурност
- 🔒 Регулярно обновявайте Docker и Portainer
- 👥 Използвайте RBAC (Role-Based Access Control) в Portainer
- 📝 Активирайте аудит логове
- 🌍 Ограничете достъпа до административни портове
Поддръжка и резервни копия
- 📅 Създайте график за резервни копия
- 🧪 Тествайте възстановяването от резервно копие
- 🔄 Поддържайте документация актуална
🎯 Пример: Деployване на първия контейнер
Нека деплоираме Nginx web сървър:
- В Portainer, отидете на "Containers"
- Кликнете "Add container"
- Попълнете:
- Name:
web-server - Image:
nginx:latest - Port mapping:
8080:80
- Name:
- Кликнете "Deploy the container"
Сега имате работещ Nginx на порт 8080! 🎊
🤔 Често задавани въпроси
В: Мога ли да инсталирам Portainer на съществуващ Docker хостван?
О: Да, стъпките са идентични. Просто пропуснете инсталацията на Docker.
В: Колко ресурси изисква Portainer?
О: Portainer използва минимални ресурси – около 50MB RAM и 1% CPU.
В: Как да обновя Portainer?
О: Спрете контейнера, изтеглете новия образ и рестартирайте:
docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:latest
# Изпълнете командата за стартиране отново
🏁 Заключение
Инсталирането на Docker и Portainer на VPS ви дава мощна платформа за контейнеризация. Portainer опростява управлението на Docker значително. 💪
С тази настройка можете да хоствате уебсайтове, приложения, бази данни и повече. Системата е скалируема, гъвкава и лесна за управление.
Следващи стъпки:
- 🧪 Експериментирайте с различни Docker образи
- 📚 Научете Docker Compose за многоконтейнерни приложения
- 🌍 Разгледайте Docker Swarm или Kubernetes за кластеризация
- 🔐 Усъвършенствайте сигурността на вашата инсталация
Имате ли въпроси или нужда от помощ? Споделете опита си в коментарите! 👇
Намерихте материала за полезен?
Съдържанието на itpraktika.com е безплатно и ще остане такова.
Ако статията ти е помогнала — можеш да подкрепиш сайта с малка доброволна сума.
Всяко дарение помага за поддръжката и развитието на портала.
