renamed: documentation/DockerComposeDocumentation.md -> documentation/DocerComposeYamlDocs.md

new file:   documentation/RestartDocs.md
add docker for restart system on server
This commit is contained in:
2025-11-30 21:39:26 +05:00
parent c14556565b
commit 3169dfc960
2 changed files with 101 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
# Автоматический запуск микросервисов после перезагрузки сервера
## Обзор системы
Данная система состоит из нескольких микросервисов, развернутых через Docker Compose. Для обеспечения автоматического запуска после перезагрузки сервера настроена интеграция с systemd.
## Конфигурация автоматического запуска
### 1. Systemd Service для Docker
В системе настроен сервис Docker для автоматического запуска при загрузке ОС:
```bash
sudo systemctl enable docker.service
```
Эта команда гарантирует, что Docker демон будет автоматически запускаться при старте системы.
### 2. Docker Compose и автоматический перезапуск
В файле `docker-compose.yml` для каждого сервиса настроена политика перезапуска:
```yaml
restart: unless-stopped
```
Эта политика означает:
- Сервисы автоматически перезапускаются при выходе из строя
- Сервисы не перезапускаются, если были остановлены вручную
- При перезагрузке системы все сервисы автоматически запускаются
## Процесс запуска после перезагрузки
### Последовательность запуска:
1. **Загрузка ОС** → systemd запускает Docker демон
2. **Docker** → автоматически восстанавливает контейнеры с политикой `unless-stopped`
3. **Health checks** → система проверяет готовность каждого сервиса
4. **Зависимости** → сервисы запускаются в правильном порядке согласно `depends_on`
### Health Checks и зависимости
Система использует health checks для контроля готовности сервисов:
- **Базы данных**: проверка доступности через `pg_isready`
- **API сервисы**: HTTP health checks на эндпоинты `/health`
- **Nginx**: проверка через `curl http://localhost/health`
- **Certbot**: проверка наличия SSL сертификатов
## Мониторинг состояния системы
После перезагрузки проверьте статус системы:
```bash
# Проверить статус всех контейнеров
docker-compose ps
# Просмотреть логи запуска
docker-compose logs
# Проверить health status
docker ps --format "table {{.Names}}\t{{.Status}}"
```
## Ручное управление сервисами
```bash
# Остановить все сервисы
docker-compose down
# Запустить все сервисы
docker-compose up -d
# Перезапустить конкретный сервис
docker-compose restart nginx
```
## Важные замечания
1. **Время запуска**: Полный запуск системы может занять 2-5 минут из-за health checks и зависимостей
2. **Порядок запуска**: Критические сервисы (БД) запускаются первыми
3. **Volume данные**: Данные сохраняются между перезагрузками благодаря Docker volumes
4. **Сетевые соединения**: Сети восстанавливаются автоматически
## Устранение неисправностей
Если сервисы не запускаются после перезагрузки:
```bash
# Проверить статус Docker
sudo systemctl status docker
# Проверить логи Docker
sudo journalctl -u docker.service
# Принудительно перезапустить композ
docker-compose down
docker-compose up -d
```
Система спроектирована для полного самовосстановления после перезагрузки сервера без необходимости ручного вмешательства.