docker - 通过 dockerfile 为我们的容器添加用户管理
问题描述
我们正在为我们的项目使用 docker。我们有一个在 Docker 上运行的监控服务(用于我们的本机应用程序)。
目前该监控服务没有用户管理。有什么方法可以从 Dockerfile 添加用户管理?
请注意,我不是在寻找 docker 容器用户管理。
简而言之,我正在寻找的功能是:
在 dockerfile 中添加任何用户和密码。
访问外部IP时,必须提供相同的用户名和密码才能查看正在运行的监控服务。
解决方案
Docker 不知道容器中运行的是什么,其网络设置仅限于容器之间或从主机端口到容器的简单传递。在 Docker 中运行具有许多不同网络协议的程序是很典型的(Web 服务器、MySQL、PostgreSQL 和 Redis 都有不同的有线协议),并且 Docker 本身无法注入授权步骤。
许多重要的 Docker 设置包括某种 HTTP 反向代理容器(通常是 Nginx,偶尔是 Apache),它既可以服务于 Javascript UI 构建的静态文件,也可以将 HTTP 请求路由到后端服务。您可以在此处添加身份验证控件。这样做的机制将特定于您选择的代理服务器。
考虑到您包含在Dockerfile
ordocker build --args
选项中的任何信息都可以被拥有您的图像的任何人轻松检索(查看它的docker history
,或docker run
上面的调试外壳)。如果您认为它们是敏感的并且您没有将图像存储在具有强大保护的地方(如果有人可以docker pull
从 Docker Hub 中),您可能需要在运行时使用绑定挂载注入凭据。
推荐阅读
- r - 如何将十六进制代码传递给ggplot中的geom_hline?
- python - 创建或替换 AWS Glue 爬虫
- google-apps-script - Google AppScript - 使用 appscript 更新谷歌表单
- postgresql - PostgreSQL 检查数组是否包含列表中的任何值
- python - Python pandas 正则表达式非常慢
- lit-element - 全局共享数据并在 LitElement 中呈现
- c# - C#从excel加载数据适配器,是否有最大列数?
- python - 在 python 3.8 的异步编程中如何使用 'yield' 语句?
- oracle - Oracle Forms 11g 和 Oracle Forms 12 之间是否存在不兼容问题?
- javascript - 获取目录大小的异步函数(不包括子目录)