Как перезапустить сервер в Docker контейнере?

У меня есть приложение Dockerized R Shiny, которое расширяет рокер / блестящее изображение. Я бы хотел в какой-то момент перезапустить глянцевый сервер внутри контейнера Docker. Из документации на глянцевый сервер я перепробовал все команды для разных сборок Linux, и ни одна из них не сработала.

Кто-нибудь знает, как перезагружать глянцевый сервер в контейнере Docker?

2 ответа

Команда

docker ps

выводит список всех запущенных контейнеров, получает требуемый идентификатор контейнера. Тогда беги

docker exec -it <container_id> bash

попасть в нужный докер-контейнер. затем

sudo -i 
sudo systemctl restart shiny-server

перезагрузить блестящий сервер. Надеюсь, это поможет, systemctl, вероятно, будет работать только на Ubuntu.

Приложение, работающее на блестящем сервере, можно перезапустить, обновив метку времени в файле.

Из документов:

Приложение можно перезапустить, изменив «время изменения» для файла с именем restart.txtв каталоге приложения. Проще всего это сделать с помощью touchутилита, как в, которая обновит измененную метку времени в этом файле до текущего времени. При следующем новом подключении к приложению Shiny Server создаст новый процесс R для запуска «нового» (перезапущенного) Shiny Application для этого и будущих пользователей.

(Источник: https://docs.rstudio.com/shiny-server/#restarting-an-application)

Если вам нужно периодически перезапускать приложение (например, если вы установили app_idle_timeout = 0 но желаете регулярно перезапускаться для получения обновленных данных), вы можете использовать cronjob в rocker/shiny контейнер для touch restart.txt по желаемому расписанию.

Другие вопросы по тегам