Дополнительная информация#
В данном разделе приводится следующая дополнительная информация:
- Полезные команды для работы с Docker
- Действия по включению сохранения логов сервисов LP в файлы
- Настройка ротации логов Docker
Команды Docker#
Показать контейнеры#
Чтобы показать список запущенных Docker-контейнеров, используйте команду:
docker ps
Чтобы показать все имеющиеся Docker-контейнеры, используйте команду:
docker ps -a
Копировать файлы в контейнер#
Можно переносить файлы в контейнер. Используйте команду docker cp
для копирования файла в контейнер.
docker cp <file_location> <container_name>:<folder_inside_container>
Вход в контейнер#
Можно входить в отдельные контейнеры с помощью следующей команды:
docker exec -it <container_name> bash
Для выхода из контейнера используйте следующую команду:
exit
Имена образов#
Можно увидеть все имена образов с помощью команды
docker images
Удаление образа#
Если требуется удаление образа:
- запустите команду
docker images
- найдите требуемый образ, например dockerhub.visionlabs.ru/luna/luna-image-store
- скопируйте соответствующий ID образа из IMAGE ID, например, "61860d036d8c"
- укажите его в команде удаления:
docker rmi -f 61860d036d8c
Удалите все существующие образы:
docker rmi -f $(docker images -q)
Остановка контейнера#
Контейнер можно остановить с помощью следующей команды:
docker stop <container_name>
Остановить все контейнеры:
docker stop $(docker ps -a -q)
Удаление контейнера#
Если необходимо удалить контейнер:
- запустите команду "docker ps"
- остановите контейнер (см. Остановка контейнера)
- найдите требуемый образ, например:
dockerhub.visionlabs.ru/luna/luna-image-store
- скопируйте соответствующий ID контейнера из столбца CONTAINER ID, например, "23f555be8f3a"
- укажите его в команде удаления:
docker container rm -f 23f555be8f3a
Удалить все контейнеры:
docker container rm -f $(docker container ls -aq)
Проверка логов сервисов#
Чтобы показать логи сервиса, используйте команду:
docker logs <container_name>
Настройка ротации логов Docker#
Чтобы ограничить размер логов, генерируемых Docker, можно настроить автоматическую ротацию логов. Для этого необходимо добавить в файл /etc/docker/daemon.json
следующие данные:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
}
Это позволит Docker хранить до 5 файлов логов на контейнер, при этом каждый файл будет ограничен 100 Мб.
После изменения файла необходимо перезапустить Docker:
systemctl reload docker
Вышеописанные изменения являются значениями по умолчанию для любого вновь созданного контейнера, они не применяются к уже созданным контейнерам.
Запись логов на сервер#
Чтобы включить сохранение логов на сервер, необходимо:
- создать директории для логов на сервере;
- активировать запись логов и задать расположение хранения логов внутри контейнеров сервисов LP;
- настроить синхронизацию директорий логов в контейнере с логами на сервере с помощью аргумента
volume
при старте каждого контейнера.
В скрипте Docker Compose уже настроена синхронизация директорий с папками, создаваемыми в разделе ниже.
Создание директории логов#
Необходимо создать следующие директории для хранения логов и присвоить им соответствующие права.
mkdir -p /tmp/logs/configurator /tmp/logs/image-store /tmp/logs/accounts /tmp/logs/faces /tmp/logs/licenses /tmp/logs/events /tmp/logs/python-matcher /tmp/logs/handlers /tmp/logs/remote-sdk /tmp/logs/tasks /tmp/logs/tasks-worker /tmp/logs/sender /tmp/logs/api /tmp/logs/admin /tmp/logs/backport3 /tmp/logs/backport4 /tmp/logs/luna-video-agent /tmp/logs/luna-video-manager
chown -R 1001:0 /tmp/logs/configurator /tmp/logs/image-store /tmp/logs/accounts /tmp/logs/faces /tmp/logs/licenses /tmp/logs/events /tmp/logs/python-matcher /tmp/logs/handlers /tmp/logs/remote-sdk /tmp/logs/tasks /tmp/logs/tasks-worker /tmp/logs/sender /tmp/logs/api /tmp/logs/admin /tmp/logs/backport3 /tmp/logs/backport4 /tmp/logs/luna-video-agent /tmp/logs/luna-video-manager
Если необходимо использовать сервис Python Matcher Proxy, то нужно дополнительно создать директорию /tmp/logs/python-matcher-proxy
и установить ей разрешения.
Активация записи логов#
Активация записи логов сервисов LP#
Для активации записи логов в файл необходимо задать настройки log_to_file
и folder_with_logs
в секции <SERVICE_NAME>_LOGGER
настроек каждого сервиса.
Автоматический способ
Для обновления настроек ведения логов можно использовать файл настроек logging.json
, предоставленный в комплекте поставки.
Выполните следующую команду после запуска сервиса Configurator:
docker cp /var/lib/luna/current/extras/conf/logging.json luna-configurator:/srv/luna_configurator/used_dumps/logging.json
Обновите настройки записи логов с помощью скопированного файла.
docker exec -it luna-configurator python3 ./base_scripts/db_create.py --dump-file /srv/luna_configurator/used_dumps/logging.json
Ручной способ
Перейдите в интерфейс сервиса Configurator (127.0.0.1:5070
) и задайте путь расположения логов в контейнере в параметре folder_with_logs
для всех сервисов, чьи логи необходимо сохранить. Например, можно использовать путь /srv/logs
.
Установите параметр log_to_file
как true
чтобы активировать запись логов в файл.
Активация записи логов сервиса Configurator#
Настроек сервиса Configurator нет в пользовательском интерфейсе Configurator, они расположены в следующем файле:
/var/lib/luna/current/example-docker/luna_configurator/configs/luna_configurator_postgres.conf
Задайте путь расположения логов в контейнере в параметре FOLDER_WITH_LOGS = ./
файла. Например, FOLDER_WITH_LOGS = /srv/logs
.
Установите параметр log_to_file
как true
чтобы активировать запись логов в файл.
Необходимо перезапустить Configurator после внесения изменений.