Docker-сервер Minecraft: автоматическое развёртывание и масштабирование
Введение: сервер как код
Docker — это платформа для контейнеризации приложений. Вместо того чтобы настраивать сервер Minecraft вручную на каждой машине, вы описываете конфигурацию в Dockerfile или docker-compose.yml и разворачиваете идентичный сервер за одну команду. Это особенно полезно для администрирования нескольких серверов, резервного копирования и миграции между VDS. В этом гайде — как запустить Minecraft-сервер в Docker-контейнере.
Преимущества Docker для Minecraft
- Изоляция: каждый сервер в своём контейнере, не мешают друг другу.
- Воспроизводимость: одна команда — и сервер развёрнут на любой машине с Docker.
- Лёгкое обновление: заменили образ — перезапустили контейнер.
- Масштабирование: запустили 10 контейнеров для 10 серверов.
- Бэкапы: папка мира монтируется как том (volume) — легко копировать и бэкапить.
Шаг 1: Установка Docker
- Скачайте Docker Desktop с официального сайта docker.com для Windows/Mac.
- Для Linux (Ubuntu/Debian):
sudo apt install docker.io docker-compose. - Проверьте установку:
docker --versionв терминале.
Шаг 2: Простой запуск Java-сервера (Paper)
Самый быстрый способ — использовать готовый образ itzg/minecraft-server. Этот образ поддерживает Paper, Forge, Fabric, Bedrock и десятки переменных окружения для настройки.
docker-compose.yml (рекомендованный способ)
Создайте файл docker-compose.yml в папке проекта:
version: '3.8'
services:
minecraft:
image: itzg/minecraft-server:latest
container_name: minecraft-server
ports:
- '25565:25565'
environment:
EULA: 'TRUE'
TYPE: 'PAPER'
VERSION: '1.21'
MEMORY: '4G'
DIFFICULTY: 'normal'
MAX_PLAYERS: '20'
ONLINE_MODE: 'true'
MOTD: 'Docker Minecraft Server'
VIEW_DISTANCE: '10'
SIMULATION_DISTANCE: '8'
OPS: 'YourUsername'
volumes:
- ./data:/data
restart: unless-stopped
Запуск
- Сохраните файл.
- Откройте терминал в этой папке.
- Выполните:
docker-compose up -d. - Docker скачает образ и запустит сервер. Статус:
docker-compose logs -f.
Шаг 3: Запуск Forge-сервера в Docker
Тот же образ itzg/minecraft-server поддерживает Forge:
environment:
EULA: 'TRUE'
TYPE: 'FORGE'
VERSION: '1.20.1'
FORGE_VERSION: '47.2.0'
MEMORY: '6G'
Моды поместите в папку ./data/mods (она создастся автоматически).
Шаг 4: Запуск Bedrock-сервера в Docker
Образ itzg/minecraft-bedrock-server:
version: '3.8'
services:
bedrock:
image: itzg/minecraft-bedrock-server:latest
container_name: bedrock-server
ports:
- '19132:19132/udp'
environment:
EULA: 'TRUE'
SERVER_NAME: 'Docker Bedrock'
GAMEMODE: 'survival'
DIFFICULTY: 'normal'
MAX_PLAYERS: '10'
volumes:
- ./bedrock-data:/data
restart: unless-stopped
Шаг 5: Управление контейнером
- Просмотр логов:
docker-compose logs -f. - Консоль сервера:
docker exec -i minecraft-server rcon-cli(если включён RCON). - Остановка:
docker-compose down. - Перезапуск:
docker-compose restart. - Бэкап мира: скопируйте папку
./data/worldв безопасное место.
Масштабирование: несколько серверов на одной машине
Скопируйте секцию minecraft в docker-compose.yml, изменив имя контейнера и порты:
services:
survival:
image: itzg/minecraft-server:latest
ports:
- '25565:25565'
environment:
MOTD: 'Survival Server'
# ... остальные настройки
creative:
image: itzg/minecraft-server:latest
ports:
- '25566:25565'
environment:
MOTD: 'Creative Server'
# ... остальные настройки
Типичные ошибки
- Забыли EULA=TRUE. Контейнер запускается и сразу падает. Проверьте переменные окружения.
- Порты конфликтуют. Два контейнера не могут слушать один порт. Используйте разные внешние порты.
- Не хватает памяти Docker. В Docker Desktop увеличьте лимит памяти (Settings → Resources).
💡 Совет профи
Используйте Docker в связке с Portainer (веб-интерфейс для управления контейнерами). Установите Portainer одной командой, и вы сможете управлять всеми Minecraft-серверами через браузер: запускать, останавливать, смотреть логи, менять переменные. А для автоматических бэкапов добавьте в docker-compose ещё один контейнер с restic или duplicati, который будет копировать папку мира в облако (S3, Google Drive) по расписанию.
💬 Комментарии (0)
🔒 Войдите, чтобы оставить комментарий
😊 Пока нет комментариев. Будьте первым!