代码之家  ›  专栏  ›  技术社区  ›  Gagantous Faradox

无法在Docker服务内Docker Secret RM

  •  0
  • Gagantous Faradox  · 技术社区  · 6 年前

    所以我试着用“docker secret”来做一个秘密。命令应该如下所示。

    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
    

    所以我试图用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 secret rm ,但出现此错误。

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

    我怎么能在不删除Docker服务的情况下删除Docker秘密?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Marvin    6 年前

    要停止服务,您必须“rm”它。因此,命令是 码头服务室 .
    你不能仅仅“停止”服务。
    但是 你可以 更新 它,使用“ docker service update --secret-rm ...

    一旦它不再与一个服务相关联,你就可以“rm”来自蜂群的秘密。

    推荐文章