我在运行时将我的机密文件secret.json
挂载到了本地docker,尽管工作正常,但似乎在任何地方都找不到此卷。
我的docker文件如下所示,并且没有引用密码:
RUN mkdir ./app
ADD src/python ./app/src/python
ENTRYPOINT ["python"]
然后我跑了
docker build -t {MY_IMAGE_NAME} .
docker run -t -v $PATH_TO_SECRET_FILE/:/secrets/secret.json \
-e MY_CREDENTIALS=/secrets/secret.json \
{MY_IMAGE_NAME} ./app/src/python/runner.py
这在本地成功运行,但在我运行
docker run --entrypoint "ls" {MY_IMAGE_NAME}
我没有看到卷secrets
。
另外,如果我跑步
docker volume ls
它没有看起来像secrets
的东西。
没有环境变量MY_CREDENTIALS
,脚本将无法运行。因此,我确定秘密文件已安装在某个位置,但无法确定它在哪里。有想法吗?
答案 0 :(得分:2)
您实际上是使用正在运行的命令创建两个单独的容器。第一个docker run命令从已安装了卷的映像创建一个容器,然后第二个命令从同一映像创建一个没有任何卷的新容器(因为您没有在命令中定义任何卷)
我建议您给容器起一个这样的名称
docker run -t -v $PATH_TO_SECRET_FILE/:/secrets/secret.json \
-e MY_CREDENTIALS=/secrets/secret.json \
--name my_container {MY_IMAGE_NAME} ./app/src/python/runner.py
然后在该容器上运行exec
docker exec -it my_container sh