Установка Pilot-Server в docker-контейнере

Для запуска docker-контейнеров необходим Docker Engine. Установите продукт согласно рекомендациям для вашей операционной системы.

В консоли введите команды загрузки и запуска контейнера pilot-server. После выполнения команды запустите скрипт установки и перезапустите контейнер:

# docker pull pilotdev/pilot-server:latest

# docker run -d -p port:5545 --name pilot-server -v path:/mnt/vol1 pilotdev/pilot-server:latest

# docker exec -ti pilot-server dotnet ./Ascon.Pilot.Daemon.dll --admin ./settings.xml имя_администратора_сервера пароль_администратора_сервера

# docker restart pilot-server

Где:

port — порт, на котором будет работать контейнер с Pilot-Server. Например, 5546:5545 означает, что порт 5545, на котором Pilot-Server работает внутри контейнера будет проброшен на 5546. Для работы с сервером клиенты будут подключаться к порту 5546;

path — путь к папке на хосте, которая будет смонтирована в контейнер как том. Используйте том для хранения баз данных. Загрузите базу данных в path/Databases на хосте, при подключении её можно будет найти в /mnt/vol1/Databases.

имя_администратора_сервера, пароль_администратора_сервера — придумайте имя и пароль для администратора сервера.

Для обновления Pilot-Server, установленного в контейнере, и подключенных к нему клиентских приложений можно воспользоваться автоматическим обновлением с помощью Pilot-myAdmin. Удалять контейнер Pilot-Server и заменять его новым в этом случае не нужно.

Тэг latest соответствует последней бета-версии. Также можно использовать тэг release или указывать необходимую версию. Например pilotdev/pilot-server:23.44.0

На Linux удобно использовать $HOME/ascon в качестве path.

Автоматический запуск контейнеров после перезагрузки компьютера или падения можно включить параметром --restart unless-stopped, добавленным в строку с командой docker run. Например: docker run --restart unless-stopped -d -p...

Организация доступа к файлам внутри контейнера

В ряде случаев может потребоваться сохранить некоторые данные из контейнера на хостовой машине. Например, это может быть папка, содержащая log-файлы сервера. В этом случае команда запуска контейнера с Pilot-Server должна выглядеть следующим образом:

docker run -d -p port:5545 --name pilot-server -v db_path:/mnt/vol1 -v logs_path:/App/logs pilotdev/pilot-server:latest

db_path — путь к папке на хосте, которая будет смонтирована в контейнер в /mnt/vol1. Используется для хранения баз данных.

logs_path — путь к папке на хосте, которая будет смонтирована в контейнер в /App/logs. Используется для хранения логов.

Пример установки Pilot-Server в docker-контейнере

  1. Убедитесь, что на вашей операционной системе установлен Docker Engine.
  2. Определите сетевой адрес компьютера, на котором будет запущен Pilot-Server, с помощью консольной команды ifconfig на Linux или ipconfig на Windows.
  3. Из вывода нужно взять IPv4-адрес:

    Адаптер Ethernet Ethernet 2:
    DNS-суффикс подключения . . . . . :
    Локальный IPv6-адрес канала . . . : fe80::2c6d:d271:5bed:2649%5
    IPv4-адрес. . . . . . . . . . . . : 192.168.56.1
  4. Загрузите контейнер с Pilot-Server:
  5. # docker pull pilotdev/pilot-server:latest

  6. Запустите контейнер:
  7. На Linux:

    # docker run -d -p 5546:5545 --name pilot-server -v $HOME/ascon/pilot-server:/mnt/vol1 pilotdev/pilot-server:latest

    На Windows:

    # docker run -d -p 5546:5545 --name pilot-server -v C:/Ascon-Docker:/mnt/vol1 pilotdev/pilot-server:latest

  8. Добавьте администратора сервера и перезапустите контейнер:
  9. # docker exec -ti pilot-server dotnet ./Ascon.Pilot.Daemon.dll --admin ./settings.xml admin admin_password

    # docker restart pilot-server

  10. Проверьте, что сервер работает:
  11. $ curl http://192.168.56.1:5546

    Выводом команды будет версия Pilot-Server.

  12. Скачайте демонстрационные базы.
  13. На Linux:

    $ cd $HOME/ascon/pilot-server/

    # wget https://pilot.ascon.ru/release/Databases.zip

    # unzip Databases.zip

    На Windows скачайте и распакуйте демонстрационные базы в C:/Ascon-Docker/Databases.

  14. Подключите демонстрационную базу с помощью Pilot-myAdmin. База будет расположена в /mnt/vol1/Databases.
  15. Убедитесь, что Pilot-ICE (или другая редакция) подключается и работает с этой базой.