因此,我尝试使用“码头工人秘密”(秘密)来秘密。该命令应如下所示。
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服务?
答案 0 :(得分:1)
要停止该服务,您必须“ rm”它。因此,命令是 docker service rm 。
您不能只是“停止”服务。
但是,您可以使用“ docker service update --secret-rm ...”
一旦它不再与服务链接,您就可以从群“中”获取秘密了。