如何删除Docker服务内部的机密?

时间:2019-02-12 09:05:54

标签: docker redis docker-swarm

因此,我尝试使用“码头工人秘密”(秘密)来秘密。该命令应如下所示。

printf "Yes" | docker secret create sec -

然后,我尝试使用redis图像提供服务。

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

当我尝试访问redis服务并查看秘密docker时,它就像魅力一样工作。

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

所以我试图使用stop命令停止该服务。

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服务停止。

我也尝试使用docker secret rm删除docker secret,但是出现此错误。

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

我如何删除Docker机密而不删除Docker服务?

1 个答案:

答案 0 :(得分:1)

要停止该服务,您必须“ rm”它。因此,命令是 docker service rm
您不能只是“停止”服务。
但是,您可以使用“ docker service update --secret-rm ...

对其进行更新

一旦它不再与服务链接,您就可以从群“中”获取秘密了。