renamed: documentation/DockerComposeDocumentation.md -> documentation/DocerComposeYamlDocs.md
new file: documentation/RestartDocs.md add docker for restart system on server
This commit is contained in:
@@ -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
|
||||
```
|
||||
|
||||
Система спроектирована для полного самовосстановления после перезагрузки сервера без необходимости ручного вмешательства.
|
||||
Reference in New Issue
Block a user