我们在Windows Server 2019上运行Docker Enterprise 18.09.8。我们的应用程序是使用Express构建的,并作为服务在大量Docker容器中运行。我们的图像需要很小,因此它们基于Windows nano构建,这意味着没有Powershell。我们为正在使用的服务提供了一个API密钥,该API密钥应保持私有,因此我们计划使用Docker机密使该API密钥可用于应用程序。
不幸的是,该应用程序无法读取Docker机密。如果我使用:
docker exec -it 8528f64a022e cmd.exe
我可以看到有东西在
C:\ProgramData\Docker\secrets\search_credentials
但是我看不懂。如果我改用:
docker exec -it --user ContainerAdministrator 8528f64a022e cmd.exe
我可以输入文件的内容。
问题的核心似乎来自Manage sensitive data with Docker secrets - Windows Support:
创建使用Windows容器的服务时,机密不支持用于指定UID,GID和模式的选项。当前,只有容器中具有系统访问权限的管理员和用户才能访问机密。
我的应用程序不以提升的权限运行就无法访问机密内容吗?