django 如何从一个docker-container调用命令到另一个docker-container?

pbpqsu0x  于 2023-10-21  发布在  Go
关注(0)|答案(1)|浏览(131)

我正在使用Docker compose来创建一个Docker网络,我的Web AppArangoDB容器正在一起工作。我的目标是用arangorestore cli-tool恢复Arango的数据,但我需要从我的Web App代码中调用它(实际上是从Python代码中调用-我正在使用Django框架开发),我没有安装ArangoDB(这意味着bash无法找到arangorestore命令)。如何让ArangoDB从另一个容器执行arangorestore
显然,我不想在我的Web App容器中安装arangodb(这就是为什么我首先将它们分开,根据官方Docker的建议-每个容器1个服务)。所以,我需要以某种方式连接到ArangoDB容器并从那里调用arangorestore。我可以想象在ssh上这样做,但这意味着安装openssh和摆弄密钥。我可能还有其他选择吗?
容器可以通过端口转发相互通信,所以我想我可以使用它,但我不知道如何使用。
如果有人能帮助我,我将不胜感激。

qyyhg6bp

qyyhg6bp1#

如果您使用的是ArangoDB企业版,您可以尝试使用HotBackups HTTP API:https://docs.arangodb.com/3.11/develop/http/hot-backups/
它允许远程触发转储和恢复,所以你只需要从你的应用程序触发一个API。一些驱动程序已经支持此API,例如https://github.com/arangodb/go-driver/blob/master/client_admin_backup.go#L122

相关问题