Во-первых, каждый шаг выполняется на первый взгляд успешно (не сообщается ни об одной ошибке). Но согласно тому, что я понимаю о том, как проверить, применен ли новый конфиг, все в порядке, похоже, не удалось обновить конфиг.
Предположим, у меня есть файл конфигурации с простым содержимым, подобным этому:
Well done
Я создал конфигурацию (первую версию) следующим образом:
echo 'Well done' | docker config create my-config -
Теперь у меня есть локальный файл с именем my-config.txt
(на главном компьютере) с содержимым, как описано выше, он используется какшаблон (источник) для клонирования над целью в контейнере Docker. В контейнере Docker уже есть файл конфигурации с тем же содержимым (изначально). Теперь я изменяю содержимое файла my-config.txt
(на главном компьютере) примерно так:
Well done !!!
И затем я обновляю текущую службу докера (созданную ранее), используя docker service update
, чтобы применитьновый конфигурационный файл, например, такой:
//firstly create another version of config
docker config create my-config-2 /home/my_user/my-config.txt
docker service update \
--config-add source=my-config-2,target=my-config.txt \
--config-rm my-config \
my-service
Как я уже сказал, он, кажется, успешно выполняется. Но когда я пытаюсь открыть файл my-config.txt
в контейнере Docker, его содержимое остается неизменным, например:
docker exec [container_id] cat my-config.txt
По-прежнему отображается Well done
, тогда как ожидаемое содержимое должно быть Well done !!!
. Разве это не то, что должно быть? Я что-то здесь не так делаю? Или вы могли бы предложить что-то для диагностики этой проблемы или что-то отличное от того, что я сделал, не пытаясь решить эту проблему?