Docker упаковывает приложение и всё необходимое для него в контейнер, который одинаково работает где угодно — самый чистый способ самостоятельно хостить сервисы на VPS. Единственная загвоздка в Ubuntu и Debian в том, что версия из собственного репозитория дистрибутива часто старая и идёт без современного плагина Compose. Вместо этого установите из официального репозитория Docker. Вот весь процесс.
1. Настройте официальный репозиторий Docker (Ubuntu)
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2. Установите Docker Engine и Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3. Убедитесь, что служба запущена и включена на автозапуск
sudo systemctl enable --now docker
sudo docker run --rm hello-world
Контейнер hello-world скачивается, печатает сообщение об успехе и завершает работу — доказательство того, что движок работает.
4. (Опционально) Запуск Docker без sudo
sudo usermod -aG docker $USER
# выйдите и войдите заново, чтобы изменение группы вступило в силу
Делайте это только для пользователя, которому доверяете — доступ к группе docker фактически равен root на хосте.
Быстрый реальный контейнер
docker run -d --restart unless-stopped -p 8080:80 --name web nginx
# откройте http://YOUR.SERVER.IP:8080
--restart unless-stopped — это то, что заставляет контейнер подниматься после перезагрузки.
Честные предостережения
- Используйте официальный репозиторий для актуальной версии; пакет
docker.ioиз дистрибутива отстаёт и не содержит плагин Compose. - Открывайте только те порты, которые публикуете.
-p 8080:80контейнера открывает 8080 наружу — сочетайте Docker с файрволом UFW. - Подбирайте размер сервера под контейнеры, а не под сам Docker, который лёгкий.
Что дальше
С установленным Docker можно самостоятельно хостить почти что угодно. Смотрите самохостинг нескольких сервисов за одним IP или конкретные сборки на Docker, например сервер удалённого рабочего стола RustDesk и мониторинг Uptime Kuma. Чтобы поставить перед этим домен и HTTPS, смотрите как настроить nginx reverse proxy.
Комментарии
Пока нет комментариев. Будьте первым.