Как установить Битрикс в Docker на Ubuntu

    Команда Simple-Server
    03.06.2026
    8 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

    Для запуска Bitrix в Docker на Ubuntu понадобится облачный сервер. Например, можно воспользоваться сервером от Simple-Server — здесь самая бюджетная конфигурация стоит 300 ₽, а доступность составляет 99,98%. Арендуйте сервер и подключитесь к нему через SSH — для работы понадобится доступ к командной строке.

    Установите Docker. Это можно сделать с помощью нескольких команд:

    curl https://get.docker.com -o get_docker.sh sh get_docker.sh

    После завершения установки можно приступать к конфигурации Docker-инфраструктуры.

    Каталог проекта для Bitrix с компонентами Nginx, PHP-FPM и MariaDB имеет следующую организацию:

    project/ docker-compose.yml nginx.conf .env php/ Dockerfile conf.d/ bitrix.ini bitrix/

    Далее в статье разберем, за что отвечает каждый файл.

    Создайте директорию проекта и перейдите в нее. В строке ниже project — это название директории.

    Файл конфигурации Docker Compose

    Создайте файл docker-compose.yml — основной элемент проектной архитектуры. В нем определены все необходимые сервисы для функционирования Bitrix. Docker Compose обеспечивает запуск компонентов единой командой, управление зависимостями и централизованное хранение настроек.

    Для создания файла и ввода конфигурации используйте текстовый редактор nano:

    Вставьте в файл шаблон конфигурации:

    services: # Сервис базы данных db: image: docker.io/mariadb:10.11 restart: always environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - db_data:/var/lib/mysql # Сервис PHP-FPM php: build: ./php restart: always volumes: - ./bitrix:/var/www/html - ./php/conf.d/bitrix.ini:/usr/local/etc/php/conf.d/bitrix.ini depends_on: - db # Сервис Nginx nginx: image: docker.io/nginx:1.24 restart: always ports: - "80:80" volumes: - ./bitrix:/var/www/html - ./nginx.conf:/etc/nginx/conf.d/default.conf depends_on: - php volumes: db_data:

    Выйдите из редактора nano комбинацией клавиш Ctrl + X, а далее нажмите на кнопку Y для сохранения изменений.

    Управление параметрами через .env

    В docker-compose.yml пароли и учетные данные не прописываются напрямую, а передаются через переменные окружения из файла .env. Такой подход повышает безопасность (конфиденциальные данные не хранятся в открытом виде) и упрощает управление настройками. Каждый разработчик может использовать персональный .env, а для production- и development-сред задавать разные параметры без модификации docker-compose.yml.

    В итоге получается следующий файл .env:

    MYSQL_ROOT_PASSWORD=rootbitrix MYSQL_DATABASE=bitrix MYSQL_USER=bitrix MYSQL_PASSWORD=bitrix

    Перейдем к конфигурации файла nginx.conf. Этот файл определяет правила обработки запросов веб-сервером:

    • указывает Nginx прослушивать порт 80 и обрабатывать запросы по адресу http://localhost;
    • определяет корневой каталог /var/www/html как место размещения файлов Bitrix;
    • задает приоритетные индексные файлы index.php и index.html;
    • настраивает обработку ошибок 404 через index.php (требуется для работы Bitrix);
    • определяет передачу PHP-запросов в контейнер с PHP-FPM для выполнения.

    Вставьте в файл nginx.conf эту конфигурацию:

    server { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include fastcgi_params; fastcgi_pass php:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }

    Подготовка образа PHP через Dockerfile

    Создайте файл Dockerfile в директории php. Он необходим для установки всех требуемых модулей PHP, обеспечивающих работу «1С-Битрикс».

    Базовый образ php:8.1-fpm содержит только ядро PHP и менеджер FPM. Для корректной работы Bitrix требуется дополнительный набор расширений: обработка изображений, взаимодействие с СУБД, архивами и XML. В Dockerfile выполняется установка необходимых библиотек и активация модулей PHP.

    FROM docker.io/php:8.1-fpm RUN apt-get update && apt-get install -y \ libpng-dev libjpeg-dev libfreetype6-dev libzip-dev libxml2-dev libldap2-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install gd mysqli opcache zip xml ldap \ && rm -rf /var/lib/apt/lists/*
    • мы подключаем библиотеки для работы с изображениями, архивами, XML и LDAP;

    • настраиваем модуль gd, чтобы PHP умел работать с картинками в формате JPEG и со шрифтами;

    • устанавливаем расширения gd, mysqli, opcache, zip, xml, ldap, которые требуются Битриксу для корректной работы;

    • очищаем кеш пакетов, чтобы образ занимал меньше места.

    мы подключаем библиотеки для работы с изображениями, архивами, XML и LDAP;

    настраиваем модуль gd, чтобы PHP умел работать с картинками в формате JPEG и со шрифтами;

    устанавливаем расширения gd, mysqli, opcache, zip, xml, ldap, которые требуются Битриксу для корректной работы;

    очищаем кеш пакетов, чтобы образ занимал меньше места.

    Конфигурация PHP — bitrix.ini

    Стандартные параметры образа PHP не соответствуют требованиям «1С-Битрикс». В отличие от BitrixVM, где настройки предопределены, в Docker их необходимо задавать вручную. Для этого создается файл php/conf.d/bitrix.ini, который монтируется в контейнер через docker-compose.yml.

    ; Ограничения ресурсов memory_limit = 512M max_execution_time = 300 max_input_time = 300 ; Загрузка файлов upload_max_filesize = 64M post_max_size = 64M ; Работа с датой date.timezone = Europe/Moscow ; Включение сессий session.save_path = "/tmp" session.gc_maxlifetime = 1440 ; Оптимизация кэша realpath_cache_size = 4096k realpath_cache_ttl = 600 ; Работа с изображениями (gd, exif) exif.decode_unicode_motorola = UCS-2LE exif.decode_unicode_intel    = UCS-2LE exif.decode_jis_motorola     = JIS exif.decode_jis_intel        = JIS

    Главное преимущество такого подхода в том, что настройки не сбрасываются после перезапуска контейнера. Они всегда остаются одинаковыми для всех членов команды, и их удобно менять прямо в одном файле.

    Создание папки bitrix и скачивание BitrixSetup

    Осталось подготовить папку для файлов самого Битрикса. В корне проекта создайте директорию bitrix — именно сюда будут устанавливаться файлы CMS.

    Затем скачайте в нее официальный установочный скрипт BitrixSetup:

    wget https://www.1c-bitrix.ru/download/scripts/bitrixsetup.php -O ./bitrix/bitrixsetup.php

    Важно : иногда при запуске BitrixSetup появляются ошибки вида Permission denied. Это значит, что контейнеру не хватает прав на запись в директорию ./bitrix. Самый быстрый способ решить проблему для локальной разработки — дать полный доступ:

    Однако это небезопасный вариант: все пользователи на сервере получат права на запись. Для продакшн-среды рекомендуется правильно настроить владельца и группу файлов (UID/GID или пользователя www-data). Подробно про права доступа написано в документации.

    После подготовки всех компонентов (docker-compose.yml, .env, nginx.conf, Dockerfile для PHP и директории bitrix) запустите проект командой:

    Флаг -d обеспечивает фоновый режим работы контейнеров. Система автоматически соберет образ PHP, загрузит образы Nginx и MariaDB, и запустит три сервиса: базу данных, PHP-процессы и веб-сервер.

    Проверьте статус контейнеров:

    При успешном запуске откройте в браузере http://localhost/bitrixsetup.php — вы увидите установочный мастер «1С-Битрикс».

    Важный момент: при настройке подключения к базе данных в мастере установки вместо localhost укажите db — это имя сервиса MariaDB из docker-compose.yml. Внутри Docker-сети контейнеры взаимодействуют по именам сервисов, а не через локальный хост.

    Использование Docker особенно эффективно для локальной разработки и тестирования благодаря быстрому развертыванию. В production-средах необходимо уделить внимание настройке прав доступа, организации резервного копирования и обеспечению безопасности конфигурационных файлов.


    Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация? Посмотрите все доступные тарифы

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны