Контейнеризация выделенного сервера Valheim с помощью Docker и Docker Compose — современный стандарт развёртывания игровых сред. Запуск сервера внутри изолированного контейнера избавляет от необходимости вручную компилировать runtime-библиотеки Unity на хосте, упрощает перенос мира между серверами и гарантирует автоматическое обновление файлов игры при выходе официальных патчей в Steam.
В этом подробном руководстве мы разберём создание файла docker-compose.yml на базе популярного образа lloesche/valheim-server, настройку персистентных томов (persistent volumes) для сохранения мира, поддержку кроссплея с консолями и тайм-ауты корректного завершения контейнера.
Подготовка директорий на хосте для персистентного хранения#
Контейнеры являются эфемерными: любые файлы, созданные внутри файловой системы контейнера, будут уничтожены при его пересоздании. Все файлы сохранений мира (.db и .fwl), модификации BepInEx и кэш SteamCMD должны монтироваться с хостовой системы.
Создайте структуру каталогов и назначьте права доступа:
mkdir -p /opt/valheim/config /opt/valheim/data && sudo chown -R 1000:1000 /opt/valheim
Директория /opt/valheim/config будет содержать ваши миры и конфигурации, а /opt/valheim/data — скомпилированные бинарные файлы сервера.
Составление файла docker-compose.yml#
Создайте файл /opt/valheim/docker-compose.yml со следующей конфигурацией:
services:
valheim:
image: lloesche/valheim-server
container_name: valheim-server
restart: unless-stopped
stop_grace_period: 2m
ports:
- "2456-2457:2456-2457/udp"
environment:
- SERVER_NAME=VikingKingdom
- WORLD_NAME=Dedicated
- SERVER_PASS=SecretPass123
- SERVER_PUBLIC=true
- SERVER_ARGS=-crossplay
- UPDATE_CRON=0 4 * * *
volumes:
- /opt/valheim/config:/config
- /opt/valheim/data:/opt/valheim
Ключевые директивы конфигурации:
stop_grace_period: 2m— критически важный параметр. Серверу Valheim требуется время, чтобы записать тяжелую базу данных мира.dbна диск при завершении. Стандартный 10-секундный тайм-аут Docker приведет к принудительномуSIGKILLи повреждению мира.SERVER_ARGS=-crossplay— подключает сетевой бэкенд PlayFab для кроссплея с Xbox.UPDATE_CRON=0 4 * * *— встроенный планировщик проверяет обновления SteamCMD каждую ночь в 04:00.
Проброс игровых UDP-портов в фаерволе#
Сервер Valheim использует два последовательных порта UDP для передачи пакетов игроков и ответа на запросы мастер-сервера Steam:
sudo ufw allow 2456:2457/udp
Порты TCP открывать не требуется.
Запуск контейнера и фоновое обслуживание#
Перейдите в директорию с файлом конфигурации и запустите контейнер в фоновом режиме:
cd /opt/valheim && docker compose up -d
Docker автоматически загрузит актуальный образ, скачает файлы выделенного сервера через SteamCMD и выполнит первичную генерацию мира.
Мониторинг журнала инициализации и Join Code#
Отслеживайте вывод консоли контейнера в реальном времени:
docker compose logs -f valheim
При успешном старте в логе отобразится строка Game server connected и уникальный шестнадцатизначный код подключения (Join Code).
Если вы хотите запускать выделенные миры Valheim без настройки конфигураций Docker и управления портами, надёжный хостинг серверов Valheim предоставляет готовые контейнерные окружения с резервным копированием и мониторингом через веб-панель.




