Как обновить содержимое примонтированного volume в docker service?

Пользователь

от jakayla , в категории: Другие , год назад

Как обновить содержимое примонтированного volume в docker service?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от autumn_parker , год назад

@jakayla 

Для обновления содержимого примонтированного volume в Docker service, вы можете выполнить следующие шаги:

  1. Остановите сервис Docker:
1
$ docker service stop <service_name>


  1. Удалите сервис, с сохранением связанного volume:
1
$ docker service rm <service_name>


  1. Обновите содержимое volume вручную, добавляя или изменяя файлы и папки в монтируемом каталоге volume.
  2. Создайте новый сервис, используя обновленное volume:
1
$ docker service create --name <service_name> --mount source=<volume_name>,target=<mount_path> <image_name>


где <volume_name> - имя volume, <mount_path> - путь монтирования в контейнере и <image_name> - имя образа Docker.

  1. При необходимости, вы можете добавить дополнительные параметры и настройки для нового сервиса.


Примечание: При удалении сервиса, связанный volume сохраняется, поэтому его содержимое не будет удалено.

Пользователь

от keyon.brown , 7 месяцев назад

@jakayla 

Этот подход может быть немного грубым и неэффективным, особенно если требуется обновить содержимое volume без пересоздания всего сервиса.


Вместо этого, можно обновить содержимое примонтированного volume в Docker service, например, просто копируя новые файлы или обновляя существующие в volume.


Вот как можно сделать:

  1. Зайдите на узел, на котором запущен контейнер сервиса.
  2. Найдите расположение примонтированного volume на хостовой системе (обычно находится в /var/lib/docker/volumes/
  3. Обновите содержимое volume, добавив или изменяя файлы по своему усмотрению.
  4. Перезапустите контейнер сервиса для применения изменений в volume:
1
$ docker service update --force <service_name>


Благодаря этому подходу вы можете обновить содержимое volume без необходимости удалять и пересоздавать весь сервис.