Docker позволяет запускать базы данных, веб-приложения и инструменты в изолированных контейнерах, поэтому установка чего-то нового никогда не нарушит работу остального сервера. Это руководство устанавливает Docker Engine и Docker Compose на Ubuntu и запускает первый настоящий сервис.
1. Установка из репозитория Docker
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
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Проверьте установку командой sudo docker run hello-world.
2. Запуск Docker без sudo
sudo usermod -aG docker $USER
newgrp docker
Участники группы docker фактически обладают правами root на машине, поэтому добавляйте только тех пользователей, которым доверяете.
3. Ваш первый файл Compose
Создайте папку и файл compose.yaml, который запускает инструмент мониторинга Uptime Kuma:
mkdir -p ~/kuma && cd ~/kuma
cat > compose.yaml <<'EOF'
services:
kuma:
image: louislam/uptime-kuma:1
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
Привязка к 127.0.0.1 не выставляет порт в публичный интернет. Поставьте перед ним обратный прокси, например Nginx или Caddy, когда захотите обращаться к нему извне.
Повседневные команды
docker psпоказывает список запущенных контейнеров.docker compose logs -fследит за логами.docker compose pull && docker compose up -dобновляет до более новых образов.docker system pruneудаляет неиспользуемые образы и остановленные контейнеры.
Предупреждение о безопасности брандмауэров
Docker записывает собственные правила iptables. Порт, опубликованный как "8080:80", может быть доступен из интернета, даже если UFW сообщает, что он заблокирован. Публикуйте только то, что должно быть общедоступным, привязывайте приватные сервисы к 127.0.0.1 и проверяйте снаружи сканером портов.
Что запускать дальше
Среди популярных приложений для самостоятельного хостинга Nextcloud, Vaultwarden, Gitea, Plausible, n8n и Jellyfin. Полный пример смотрите в нашем руководстве по самостоятельному хостингу Nextcloud.