Полный пример запуска 1С в докере (Linux)

17.10.22

Разработка - DevOps и автоматизация разработки

Описание примера запуска сервера 1С в докере на CentOS 7. Содержит архив со скриптами и последовательность шагов для запуска тестового сервера (Сервер, Клиент, Web и простой консоли управления информационными базами).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Скрипты запуска 1С в докере (Linux)
.tar 69,50Kb
77 2 500 руб. Купить
Скрипты запуска 1С в докере (Astra Linux)
.rar 26,22Mb
14 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

В сети и на infostart.ru, в частности, много материалов по теории и примерам настройки сервера 1С в Docker окружении. Не буду цитировать экспертов и приводить ссылки, тем более что уже сложно понять какой материал в какой момент и откуда использовался. Если кто-то посчитает отдельные блоки «плагиатом», то прошу извинить и сообщить, обязательно вставлю ссылку. Сложно быть оригинальным, когда столько умных людей уже делились своими мыслями. В данной статье нет теории, нет ответов зачем это нужно и какие еще существуют варианты, а рассмотрена конкретная последовательность действий. Это статья родилась как желание закрепить опыт пошагового запуска для коллег и всех интересующихся.

Исходные данные:

Виртуальный сервер RAM 8Gb HDD 40Gb Linux CentOS 7 x64

Что ставим:

  • Docker CE 20.10 (последний на момент написания статьи)
  • Ubuntu 18.04 (Bionic)
  • 1С - 8.3.17.1851 (лично проверял 8.3.13, 15, 17)

Какие контейнеры создаем:

 
 Характеристики
  • Host data.local
  • Port 5432
  • Администратор postgres/postgres
  • 1c-server – Сервер 1С Предприятие 8.3.17.1851
 
 Характеристики
  • Host srv.local
  • Port 1540, 1541, 1545, 1560-1591
  • Простой веб-сервер для скачивания и загрузки дампов информационных баз
  • SSH сервер (22 порт, root/q123Q123)
  • VNC сервер (http://<адрес>:5900)
  • JDK 11 для разворачивания агента КИП
  • Отладка на сервере 1С по умолчанию разрешена
  • 1c-web – Веб сервер 1С Предприятие 8.3.17.1851
 
 Характеристики
  • Host web.local
  • Port 80
  • по умолчанию прописана база «test»
 
  • dashboard-app – Простое веб приложение для базового управления информационными базами на сервер
 
 Характеристики
  • Host dashboard.local
  • Port 3000
  • Portainer – Приложение для управления контейнерами
 
 Характеристики
  •  Port 9000

Общий порядок шагов

1. Установка docker (см.https://docs.docker.com/engine/install/centos/)

(перепечатка с сайта) (возможна установка на Astra Linux, проверял на Орел, если потребуется дам информацию)

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker

2. Копируем папку (scp / ftp / ....) из прикрепления в рабочую папку сервера, например в /home, и распаковываем архив

cd /home
tar -xf 1cserver.tar

3. Для базового управления контейнерами неплохой инструмент portainer (см. https://www.portainer.io/) 

Будет запущен на порту 9000, можно после установки подключиться по адресу - http://<адрес сервера>:9000 для контроля последующих шагов.

cd /home
./portainer.sh

4. Копируем файлы установки 1с с сайта 1С в папку /home/dist

Много раз обсуждалось почему нельзя выкладывать дистрибутивы 1С, повторяться не буду. Нужно самостоятельно скачать с сайта 1С дистрибутивы платформы и клиента (см. https://releases.1c.ru/version_files?nick=Platform83&ver=8.3.17.1851)

- Будем считать, что скачали «Сервер 1С:Предприятия (64-bit) для DEB-based Linux-систем» - deb64_8_3_17_1851.tar.gz

- Будем считать, что скачали «Клиент 1С:Предприятия (64-bit) для DEB-based Linux-систем» - client_8_3_17_1851.deb64.tar

5. Распаковываем файлы установки и копируем в контейнеры

cd /home/dist

tar -xvf deb64_8_3_17_1851.tar.gz
tar -xvf client_8_3_17_1851.deb64.tar

cp -R ./ ./../1cserver-8.3.17/dist
cp -R ./ ./../1cserver-8.3.17-web/dist

6. Собираем образы контейнеров

cd /home
./build-images.sh

если все собралось, то в portainer должны появиться образы, примерно так:

 
 Пример экрана

7. Поднимаем контейнеры и запускаем

cd /home
./recreate-server.sh
./run.sh

если ошибок не возникло, то в portainer должны появиться запущенные контейнеры, примерно так:

 
 Пример экрана

Последующие шаги

1. Консоль администрирования 1С

К поднятому серверу можно подключиться через стандартную консоль управления серверами 1С. Кластер доступен по адресу сервера.

 
 Пример экрана

2. Приложение для базового управления

Можно подключиться к приложению управления по адресу http://<адрес сервера>:3000

- Упрощенное создание, удаление, импорт и экспорт информационных баз

- Открытие VNC консоли

 
 Пример экрана

3. VNC консоль

Можно подключиться к VNC консоли http://<адрес сервера>:6080/

 
 Пример экрана

Использование VNC целесообразно в отладочных целях, т.к. часто «отваливается», помогает перезагрузка контейнера 1c-server. Причины «падения» понятны, но настроить автоматический перезапуск VNC-сервера, без перезагрузки контейнера пока не удалось.

4. Локальная станция

Для корректно работы нужно прописать адрес сервера на DNS-сервере предприятия или в локально дописать в файл \Windows\System32\drivers\etc

<адрес сервера> srv.local

После создания информационной базы к ней можно подключаться любым способом: конфигуратор, клиент толстый/тонкий/web.

Установка лицензий 1С штатная через Клиента или Конфигуратор. Возможно использовать внешний сервер лицензирования.

Дополнение:

Если требуется изменить версии, порты, адреса, пароли, явки и т.д. или получить более детальную информацию нужно смотреть (изменять) в файлах архива. Затем пересобирать образы и пересоздавать контейнеры. Можно без пересоздания контейнеров (в т.ч. в живую) смотреть, изменить ряд данных в контейнерах, например логи, скрипты и т.д. Примонтированные разделы лежат в папке /var/lib/docker/volumes.

Возможно какие-то вопросы не отражены, с удовольствием отвечу на вопросы.

Прошу экспертов сильно не ругаться, сделано для личного пользования и возможно не сильно оптимально. У нас практически все сервера переведены на контейнеры, по аналогичной технологии.

Внимание !!!

Еще раз напомню, все описанное в статье нужно делать в тестовой среде! Крайне не рекомендую переносить на рабочий контур без модификации, полного понимания рисков и последствий.

UPD: добавлена информация про запуск в Astra Linux (Орел)

Архив - docker_Astra_1c_8_3_20.rar

OS - Astra Linux 2.12 

1c - 8.3.20.2039

DB - Postgres 9.6

Скачиваем с сайта 1с сервер и агент (при необходимости)

  • server64_8_3_20_2039.tar.gz -> /1c.8.3.20/server/
  • agentetp_1.0.34.51_all.deb -> /1c.8.3.20/agentetp/

В папке /1c.8.3.20 настраиваем под себя Dockerfile. В примере 3 секции - Агент ETP, Web-сервер, 1c-сервер. Если секция не нужна, то удаляем или комментируем.

Чуть подробней про файлы.

Папка /1c.8.3.20/server/:

  • logcfg.xml - настройка логов 1С во внешнюю папку и настройка типов событий
  • nethasp.ini - настройка если используется сервер лицензий 

Папка /1c.8.3.20/http/:

  • apache2.conf - конфигурация веб-сервера
  • http-services.conf - публикация баз 1с, добавляем по аналогии свои по необходимости
  • sites - папка для файлов публикации баз

Папка /1c.8.3.20/agentetp/:

  • conf.cfg - настройка агента
  • settings.xml - настройка агента
  • python.tar - python для запуска скриптов

Папка /base-astra/:

  • build-docker-image.sh - скрипт создания образа astra linux с официального сайта

Папка /:

  • build-images.sh - скрипт создания образов docker
  • docker-compose.yml - пример контейнеров, нужно изменить пути и т.д. под собственное окружение

Подготовка к запуску:

1. Распаковываем папку docker_Astra_1c_8_3_20.rar любым удобным способ на сервере, например /home/docker

2. Скачиваем файлы сервера и агента (при необходимости) с сайта 1с и копируем в /home/docker/1c.8.3.20/server/ и /home/docker/1c.8.3.20/agentetp/ (см.выше)

3. Проверяем пути и настройки в файлах (см.выше)

4. Запускаем сборку образов /home/docker/build-images.sh

5. Создаем папки для хранения данных, например в папке /mnt/data:

  • /mnt/data/1c-data - файлы базы данных postgres
  • /mnt/data/1c-server - файлы кластера
  • /mnt/data/ibfilestore - файлы для хранилища файлов (если используются тома)
  • /mnt/data/exchange - файлы для файлового обмена (если есть обмены между базами)
  • /mnt/data/backup - папка для сохранений (например сохранения делаются через Агента ETP)
  • /mnt/data/1c-log - папка с логами 1с
     

6. Запускаем контейнеры из папки /home/docker/ -> docker-compose up -d

7. Создание баз через консоль управления серверами (1CV8 Servers (x86-64).msc), (сервер БД - 1c-data, пользователь и пароль postgres)

8. Для подключения клиентов вносим имя хоста контейнера (srv0504.server - в примере из docker-compose.yml) в C:\Windows\System32\drivers\etc\hosts или в dns-сервер.

 

В целом все, если что-то не указал, напишите..

Вступайте в нашу телеграмм-группу Инфостарт

Docker Докер Astra Linux

См. также

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Системный администратор Разработчик 1С 8.3 1С 8.5 Бесплатно (free)

В прошлой статье у ERP оставалось 89 отказов загрузки, у ЗУП — 19. Теперь обе конфигурации совпали с эталонами, а собранные файлы прошли круг через платформу. Развертка выделена в открытый репозиторий cf-unwrapper: библиотека на Rust и консольная утилита. Показываю результаты, объясняю границы «100%» и приглашаю к проверкам и развитию проекта.

02.11.2026    210    oyti    1    

1

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С:Предприятие 8 Россия Бесплатно (free)

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

02.11.2026    427    vanya_gonchar    2    

4

Файловый обмен (TXT, XML, DBF), FTP DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Системный администратор Разработчик 1С 8.5 Бесплатно (free)

В прошлой статье я выгрузил Бухгалтерию в XML байт в байт и спросил, на чем проверить дальше. Вы ответили: ERP, старые релизы, зарплата. Прогнал пять конфигураций, от клиента ЭДО до ERP на 120 тысяч файлов. Рассказываю, что сломалось после Бухгалтерии, почему эталону платформы нельзя верить на слово, как выгрузить одну конфигурацию в формат трех версий платформы - и почему cf-конвертер становится отдельным продуктом, Разверткой.

02.11.2026    276    oyti    2    

3

Инструментарий разработчика DevOps и автоматизация разработки Разработчик 1С 8.3 Абонемент ($m)

Как отличить срочное исправление от обычного вечернего коммита? Проверила расчёт показателей поставок по отчёту хранилища 1С и истории двух открытых проектов. На стенде счётчики совпали со сценарием, а в выборке открытого проекта правило «те же объекты» ошиблось во всех шести случаях. Показываю границы такого замера и отличие от метрик DORA. Прилагаются инструмент и материалы опыта.

1 стартмани

29.10.2026    276    Ninel_S    0    

0

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С 8.5 Бесплатно (free)

Выгрузка типовой Бухгалтерии в XML через базу занимает больше четырёх минут. Я написал движок, который читает файл конфигурации напрямую и выгружает его за 35 секунд, совпадая с выгрузкой платформы байт в байт во всех 90 385 файлах. Загрузка обратно тоже работает: круг через платформу совпадает полностью. Рассказываю, как ускоряли, как проверяем и что при загрузке XML теряет сама платформа. А в конце спрашиваю, нужно ли это кому-то, кроме меня, и на какой конфигурации проверить следующей.

27.10.2026    849    oyti    20    

16

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С 8.3 Абонемент ($m)

Хук pre-commit проверяет полный снимок индекса Git в отдельной базе 1С. На «Нано-УТ» и платформе 8.3.27 повторила 12 попыток коммита: восемь прошли, четыре остановлены. Чистый коммит занял 31,8 с. Вызов несуществующего метода общего модуля хук останавливает только с ключом -ExtendedModulesCheck. В архиве версия 2, тесты, инструкция и журналы.

1 стартмани

26.10.2026    316    Ninel_S    2    

-1

Нейросети DevOps и автоматизация разработки Разработчик 1С 8.3 Абонемент ($m)

Я дала агенту Claude Code задачу словами: добавить в учебную конфигурацию документ «Внутреннее потребление товаров», который списывает товар по средней стоимости и не даёт уйти в минус. Три запуска с нуля, каждый принят проверкой на платформе 1С: 1 мин 49 с, 2 мин 33 с и 2 мин 56 с. Показываю, что агент поменял, где ошибался и почему на типовой УТ так быстро не будет.

1 стартмани

26.10.2026    560    Ninel_S    0    

-1

Нейросети DevOps и автоматизация разработки Разработчик 1С 8.3 Бесплатно (free)

ИИ пишет код на 1С все быстрее, а разработчик по-прежнему носит вопросы, ответы и статусы между чатом с агентом, аналитиком и архитектором. Показываю другой подход и демо-стенд: задача из Яндекс Трекера сама идет по этапам, ИИ-агент работает в GitLab CI, а люди только утверждают спецификацию, архитектуру, план и код. Живой пример задачи от заявки до merge, честный отказ агента, права агента, время и стоимость: вся задача обошлась в 68 центов.

22.10.2026    696    maxrubtsoff    1    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Andry.Boris 59 27.01.21 00:16 Сейчас в теме
Спасибо, статья интересная.
Похоже на записки кулинара и книги рецептов.

Но не раскрыта роль начальных данных.

Исходные данные:
Виртуальный сервер RAM 8Gb HDD 40Gb Linux CentOS 7 x64
Что ставим:
Ubuntu 18.04 (Bionic)

Что к чему и для чего CentOS и Ubuntu?

Я навичок в этой теме. Просьба не ругать за офтопик.
2. user1543979 11.02.21 19:55 Сейчас в теме
(1)на убунте - доекер
на центосе - 1с
3. user1543979 11.02.21 20:03 Сейчас в теме
хотя стоп.
автор говорит про убунту , а выполняет команды "yum"

всё ок?
4. portwein 23.08.21 11:53 Сейчас в теме
(3) Ubuntu разворачивается в контейнере. Контейнер крутится в докере, докер установлен на Centos - поэтому yum!
5. пользователь 08.12.21 16:19
Сообщение было скрыто модератором.
...
6. None546674 06.06.22 16:44 Сейчас в теме
Есть у кого в продакшене это решение?
Хотел бы проконсультироваться
7. uasy_user611066 42 06.06.22 17:16 Сейчас в теме
(6) У нас работает, пишите, постараюсь помочь если получится.
8. None546674 07.06.22 12:50 Сейчас в теме
(7) Вообще интересует 3 вопроса
1) БД у вас в контейнере? Если да, то что по производительности? Не сталкивались с критичными багами?
2) Как организовано лицензирование? Это отдельный сервер лицензирования?
3) В целом сталкивались с каким-либо трудностями в начале и процессе эксплуатации?
9. uasy_user611066 42 07.06.22 13:51 Сейчас в теме
(8) 1. Производительность сильно зависит от железа, лучше всего перед промом провести нагрузочное тестирование или хотя-бы замеры по Гилеву. На тестовых серверах в офисе падение производительности составляло примерно на 10-15%. На сколько это критично, нужно оценивать индивидуально. Если критично, то СУБД можно вынести за контур докера или даже на другую машину.
2. Лицензии серверные программные, установлены стандартным образом в папку внутри контейнера. Клиентские, есть где-то аппаратные на отдельных машинах (виртуальных), есть где-то так-же программные на сервере лежат.
3. Проблемы были с соединением клиентов через закрытую сеть, заказчик делал предположения что виноват docker, но так-как основная масса работала штатно, но гипотезу сняли и рекомендовали заказчику привести подключение к ЗСПД к одному стандарту, а не как у кого получилось. Также были проблемы при установке на закрытую Астру ("Смоленск") из-за мандатного доступа, не оказалось специалистов у заказчика по ее администрированию, а нам не давали доступ из-за соображений безопасности. Что-то еще серъезного особо не припомню..

Общее впечатление пока хорошо. Самое главное не связаны руки со стороны "живой" системы, нужен минимальный доступ для администрирования контейнеров и нет необходимости разбираться с зависимостями разных библиотек. Сейчас внутри контейнера с 1С используется Ubuntu 18, готовим образ для перехода Астру. Из-за того что данные кластера и БД хранятся "снаружи" контейнеров, очень легко сохранять, переносить, пересоздавать и т.д. Также удобно масштабировать (создание контейнеров на другой машине или этой-же но с другим составом портов и включением в кластер). Неизбежна потеря производительности, но нужно искать компромиссы..
10. user1811975 09.07.22 15:28 Сейчас в теме
где взять ./build-images.sh?
11. uasy_user611066 42 25.07.22 08:52 Сейчас в теме
(10) Внутри присоединенного архива...
13. пользователь 26.07.22 23:23
Сообщение было скрыто модератором.
...
12. пользователь 26.07.22 23:21
Сообщение было скрыто модератором.
...
14. user1860333 17.10.22 11:45 Сейчас в теме
Здравствуйте , нужна информация по установке на Асра линукс Докера ,как можено ее получить? Заранее благодарю
15. uasy_user611066 42 17.10.22 14:00 Сейчас в теме
(14)
Добрый день. Добавил информацию о запуске и файл архива со скриптами.
16. user1905092 06.02.23 11:30 Сейчас в теме
У www.portainer.io/ весьма не гуманные расценки

по конфигам не плохо бы завернуть все в nginx, чтобы не светить внутренней сетью контейнера наружу
ну и в SSL обернуть
Для отправки сообщения требуется регистрация/авторизация