Назначение
Docker Quick Start позволяет быстро развернуть Avanpost CA для демонстрации, тестирования или пилотирования.
Конфигурация быстрого старта не является готовым шаблоном промышленной эксплуатации.
Когда использовать
- демонстрация возможностей;
- обучение;
- функциональное тестирование;
- пилот;
- проверка интеграции;
- подготовка сценария миграции.
Когда не использовать без доработки
- промышленный корневой CA;
- критичная инфраструктура без резервирования;
- среда без постоянных томов;
- среда без резервного копирования;
- среда, где секреты хранятся в открытом
.env; - среда без HTTPS, мониторинга и централизованных журналов.
Предварительные требования
- поддерживаемая Linux ОС;
- Docker Engine;
- Docker Compose plugin;
- ресурсы не ниже минимальных системных требований;
- постоянное DNS-имя;
- свободные TCP 80/443 либо опубликованные дистрибутивом порты;
- дистрибутив
Avanpost.CA.v*.zip; - доступ к постоянному дисковому хранилищу.
Проверьте:
docker version
docker compose version
1. Проверка дистрибутива
ls -lh <DISTRIBUTION_FILE>
sha256sum -c <CHECKSUM_FILE>
Не продолжайте, если проверка контрольной суммы завершилась ошибкой.
2. Распаковка
mkdir avanpost-ca-docker
unzip <DISTRIBUTION_FILE> -d avanpost-ca-docker
cd avanpost-ca-docker/compose
Фактическая структура может отличаться между версиями. Найдите файл compose.yaml, docker-compose.yml или инструкцию README.
3. Создание файла переменных
Создайте копию поставляемого шаблона:
cp ca.env.example ca.env
chmod 600 ca.env
Если шаблон называется иначе, используйте имя из дистрибутива.
Минимальные параметры текущей поставки:
API_URL=<CA_FQDN>
POSTGRES_USER=avanpost_ca
POSTGRES_PASSWORD=<STRONG_UNIQUE_PASSWORD>
POSTGRES_DB=avanpost_ca
CA_DATABASE_URL=postgres://avanpost_ca:<URL_ENCODED_PASSWORD>@postgres:5432/avanpost_ca?sslmode=disable
sslmode=disable допустим только для изолированной внутренней Docker-сети демонстрационного контура. При использовании внешней СУБД настройте TLS.
Не добавляйте ca.env в Git:
printf "\nca.env\n" >> .gitignore
Для производственной адаптации используйте Docker Secrets, Vault или другое средство управления секретами.
4. Проверка Compose-конфигурации
docker compose -p avanpost-ca config --quiet
Команда не должна возвращать ошибок.
Просмотрите перечень сервисов:
docker compose -p avanpost-ca config --services
Не публикуйте вывод полной конфигурации: он может содержать секреты.
5. Запуск
docker compose -p avanpost-ca up -d
Проверьте:
docker compose -p avanpost-ca ps
Все обязательные контейнеры должны иметь состояние running или healthy, если healthcheck предусмотрен.
6. Проверка журналов
docker compose -p avanpost-ca logs --tail=200
Для отдельного сервиса:
docker compose -p avanpost-ca logs --tail=200 <SERVICE_NAME>
Проверьте отсутствие:
- ошибок подключения к PostgreSQL;
- ошибок миграции;
- циклических перезапусков;
- ошибок прав на volumes;
- конфликтов портов.
7. Проверка интерфейса
Если Docker установлен локально:
http://localhost
Если Docker установлен на сервере:
http://<CA_FQDN>
Для среды, доступной другим пользователям, настройте HTTPS до передачи стенда.
Проверьте:
curl --head http://<CA_FQDN>/
8. Перезапуск
docker compose -p avanpost-ca restart
docker compose -p avanpost-ca ps
Убедитесь, что данные сохранились после перезапуска.
9. Остановка
Остановить контейнеры без удаления:
docker compose -p avanpost-ca stop
Запустить:
docker compose -p avanpost-ca start
Удалить контейнеры и сеть, сохранив именованные volumes:
docker compose -p avanpost-ca down
Не используйте
docker compose down -v, если требуется сохранить БД. Параметр-vудаляет именованные volumes и может привести к потере данных.
10. Резервное копирование
До значимых изменений:
- определите имя контейнера PostgreSQL;
- выполните
pg_dump; - скопируйте резервную копию за пределы Docker host;
- зафиксируйте используемую версию образов;
- проверьте восстановление.
Пример логического резервного копирования:
docker compose -p avanpost-ca exec -T postgres \
pg_dump \
--username=avanpost_ca \
--format=custom \
avanpost_ca > avanpost_ca.backup
Имя сервиса postgres необходимо заменить, если в compose-файле используется другое имя.
11. Минимальное усиление тестового контура
- задайте уникальные пароли;
- ограничьте доступ межсетевым экраном;
- настройте HTTPS;
- установите ограничение размера журналов Docker;
- не публикуйте PostgreSQL наружу;
- используйте постоянные volumes;
- храните резервные копии вне Docker host;
- зафиксируйте версии образов;
- запретите использование тега
latest; - настройте мониторинг свободного места;
- ограничьте доступ к Docker socket;
- регулярно устанавливайте обновления безопасности Docker host.
12. Переход к производственной среде
Перед промышленной эксплуатацией необходимо:
- определить поддерживаемость контейнерного варианта для выбранной версии CA;
- вынести СУБД в управляемый или резервируемый контур;
- настроить TLS;
- внедрить управление секретами;
- настроить резервное копирование и восстановление;
- настроить централизованные журналы;
- настроить мониторинг;
- определить процедуру обновления;
- защитить закрытый ключ CA;
- выполнить нагрузочное тестирование;
- подготовить план аварийного восстановления.
Итоговый чек-лист
| Проверка | Результат |
|---|---|
| Docker и Compose установлены | ☐ |
| Контрольная сумма проверена | ☐ |
| Используются уникальные пароли | ☐ |
ca.env имеет права 600 | ☐ |
ca.env исключен из Git | ☐ |
| Compose-конфигурация проходит проверку | ☐ |
| Контейнеры запущены | ☐ |
| PostgreSQL доступен приложению | ☐ |
| Интерфейс Avanpost CA открывается | ☐ |
| Данные сохраняются после перезапуска | ☐ |
| Резервная копия создана | ☐ |
| Восстановление проверено | ☐ |
Следующий шаг
Перейдите к странице Инициализация CA.