docker - Docker 镜像的安全性

标签 docker

我正在考虑将 Rust 应用程序打包到 Docker 容器中。

该应用程序的当前版本包含用于通过服务帐户 key 注册到 Discord API 或 Google API 的各种凭据文件。

如果我这样打包我的应用程序,这些文件是否可以访问?

[编辑:添加 Dockerfile]

FROM rust:1.28.0

WORKDIR /usr/src/<application>
COPY . .

RUN cargo install --force --path .

CMD ["<application>"]

最佳答案

切勿将实际凭据放入您和只有您可能无法访问的任何内容中。
你基本上有两个选择:

1) 让您的应用程序从其环境中提取所需的凭据,然后在启动容器时设置这些变量。见 docs

2) 让您的应用程序从配置文件中读取凭据,该文件不会被拉入 docker 镜像。然后,在运行容器时,将该文件挂载到其中,参见 docs

您实际上可以同时做到这两个:拥有一个环境变量,告诉您的应用程序是否应该查找配置文件(可能在生产中),如果该变量未设置,请检查环境(用于开发)。

编辑:最佳实践是创建 .dockerignore构建上下文中的文件,包含保存凭据的文件的名称(或路径)。

关于docker - Docker 镜像的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52369324/

相关文章:

docker - haproxy SSL 终止后的 Browsersync,无法正常工作

mongodb - 抑制 Codeship 服务的输出

mysql - 在 Docker 容器中使用 MySQL

docker - docker-compose不加载数据

Windows 上 Docker 容器中的 Postgresql : How to persist data to a local windows folder

python - 无法从docker-compose生成django.po文件

linux - 远程 LLDB 调试 - Docker 容器

windows - Docker 无法在 Windows 上启动 : Not Enough memory to start docker

docker 撰写 : Running a command and then retrieving files

docker - 无法连接到 $(minikube ip) :$NODE_PORT on mac M1