我有一个 docker swarm,我从这个 compose 文件开始:
version: "3.1"
services:
my_service:
image: my_image
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /run/secrets:/run/secrets
secrets:
- my-secret
secrets:
my-secret:
file: my_secret.txt
现在,在运行的容器中my_service
,我启动了一个新的同级容器(注意我已经安装了 docker 套接字),我希望可以访问my-secret
它,尽管它不是 swarm 的一部分。最好的方法是什么?
简单地将秘密挂载为卷 ( docker run -v /run/secrets:/run/secrets sibling_image
) 是行不通的,兄弟容器可以看到my-secret
,但它是空的。
传递环境变量是可行的,但如果我有很多秘密,那就有点太麻烦了:docker run -it --env MY_SECRET=$(cat /run/secrets/my-secret) sibling_image