Как удалить секрет внутри докера? - PullRequest
0 голосов
/ 12 февраля 2019

Итак, я попытался сделать секрет, используя «секрет докера».Команда должна выглядеть примерно так:

printf "Yes" | docker secret create sec -

И чем я пытался создать сервис, используя redis изображения.

docker service  create --name redis --secret sec redis:alpine

Это работает как шарм, когда я пытался получить доступ к службе Redis и просмотреть секретный докер.

docker container exec $(docker ps --filter name=redis -q) cat /run/secrets/sec

Но проблема в том, что я пытался удалить секретный ключ из Redis, не удаляя службу.Я сделал так, как показано ниже:

docker container exec $(docker ps --filter name=redis -q) rm -rf /run/secrets/sec
rm: can't remove '/run/secrets/sec': Resource busy

Итак, я попытался остановить службу с помощью команды остановки.

docker container stop $(sudo docker ps --filter name=redis -q)
docker container exec $(sudo docker ps --filter name=redis -q) rm /run/secrets/sec
rm: can't remove '/run/secrets/my_secret_data': Resource busy

Но это не остановило службу, я попытался остановитьслужба по docker service [COMMAND], но я не могу найти остановку службы докера.

Я также пытался удалить секрет докера, используя docker secret rm, но эта ошибка появляется.

Error response from daemon: rpc error: code = InvalidArgument desc = secret 'sec' is in use by the following service: redis

Как могудалить секрет докера без удаления сервисов докера?

1 Ответ

0 голосов
/ 12 февраля 2019

Чтобы остановить сервис, вы должны «rm» его.Таким образом, команда docker service rm .
Вы не можете просто "остановить" службу.
НО вы можете обновить ее, используя " Обновление службы Docker --secret-rm ..."

Как только оно больше не будет связано со службой, вы сможете" секретировать "секрет из роя.

...