以Docker中不同的用户身份运行命令/脚本

2024-05-20 05:10:16 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我知道这可能不是解决问题的最“集装箱化”解决方案。 在这一点上,虽然,我想知道我是否将不得不放弃我到目前为止,或者如果我可以使这项工作。你知道吗

我需要在服务器之间移动文件并备份它们。我现在有一个脚本可以做到这一点。我运行这个脚本的用户拥有所有服务器的密钥,因此从服务器到服务器的rsync'ing对于这个脚本来说不是问题。你知道吗

我现在正在创建一个web服务,用户可以ping来安全地移动他们的文件,并提供备份。这就避免了他们必须联系我来运行脚本,并允许以后与一些工作流软件集成。你知道吗

但是,我的docker容器捕捉到了对webservice的http请求,它没有指向everywhere的键,因此无法成功运行脚本。我正在寻找一个解决方案,将允许我运行这个脚本,同时也有一个Web服务,用户可以提出请求。我最初的希望是基本上传递args并运行脚本。你知道吗

我不知道下列想法是否可行,但它们是我迄今为止的两个想法。你知道吗

  • 以我的用户身份运行docker容器,它到处都有密钥
  • 启动时将docker密钥分配到所有位置

有人对如何做上述工作或解决问题有什么建议吗?你知道吗

请随意问更多的问题,因为我知道这是一个奇怪的问题。提前感谢您的帮助!你知道吗


Tags: 文件docker用户服务器脚本web集装箱密钥
1条回答
网友
1楼 · 发布于 2024-05-20 05:10:16

如果我们要通过SSH手动运行传输,我们无法回避这样一个事实,即某些东西将需要密钥。类似于“在启动时将docker密钥提供给所有地方”,我们可以将密钥绑定到容器中,并将其作为卷装入:

$ docker run -d -v /host/path/to/keys:/container/path/to/keys:ro image command ...

这使容器以只读方式访问主机上的密钥。它还允许我们在需要时更新主机上的密钥,而无需重新启动容器。你知道吗

我们可以通过在专用的秘密存储服务中存储密钥来实现这一点,容器可以在需要时获取密钥,但是对于这个简单的用例,我认为没有必要构建比需要更复杂的东西。你知道吗

相关问题 更多 >