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

首先,我知道这可能不是最“容器化”的解决scheme。 在这一点上,我想知道如果我将不得不放弃我到目前为止,或者如果我能做这个工作。

我需要在服务器之间移动文件并将其备份。 我目前有一个脚本,这样做。 我运行这个脚本的用户具有所有服务器的密钥,因此,从服务器到服务器的rsync是这个脚本没有问题。

我现在正在创build一个web服务,用户可以通过ping来安全地移动文件并进行备份。 这可以防止他们不得不联系我来运行脚本,并且稍后将允许与某些工作stream程软件集成。

但是,我的docker容器捕获的HTTP请求到Web服务将不会有密钥到处,因此不能成功地运行脚本。 我正在寻找一个解决scheme,将允许我运行这个脚本,同时也有一个Web服务,用户可以请求。 我最初的希望是为了基本上传递参数和运行脚本。

我不知道下面这些想法的可行性,但是这是我迄今为止的两个想法。

  • 运行泊坞窗容器作为我的用户,到处都有钥匙
  • 在启动时将docker钥匙交给任何地方

有没有人有任何build议,如何做到上述问题或可能的解决办法?

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

如果我们要通过SSH手动运行传输,那么我们无法避开某些事情需要密钥的事实。 类似于在启动时将docker keys赋予无处不在的地方,我们可以将键绑定到容器中作为一个卷:

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

这使容器只读访问主机上的密钥。 它还使我们能够在需要时更新主机上的密钥,而无需重新启动容器。

我们可以通过将密钥存储在一个专门的秘密存储服务中来获得这个function,而容器可以在需要的时候获取密钥,但是对于这个简单的用例,我并不认为需要构build更多的复杂性。