如何从一个docker容器调用另一个命令?

问题描述 投票:0回答:1

我正在使用 docker compose 创建一个 docker 网络,其中我的

Web App
ArangoDB
容器一起工作。我的目标是使用
arangorestore
cli-tool 恢复 Arango 的数据,但我需要从我的 Web 应用程序代码内部调用它(实际上是从 python 代码 - 我正在使用
Django
框架进行开发),而我没有ArangoDB 已安装(这意味着
bash
无法找到 arangorestore 命令)。如何让
ArangoDB
从另一个容器执行
arangorestore

显然,我不想在我的 Web 应用程序容器中安装 arangodb (这就是为什么我首先将它们分开,根据官方 docker 的建议 - 每个容器 1 个服务)。因此,我需要以某种方式连接到 ArangoDB 容器并从那里调用 arangorestore。我可以想象通过 ssh 来做到这一点,但这意味着安装 openssh 并弄乱密钥。也许我还有其他选择?

容器可以通过端口转发相互通信,所以我想我可以使用它,但我不知道如何使用。

如果有人能帮助我,我将不胜感激。

django docker ssh command-line-interface arangodb
1个回答
0
投票

如果您使用的是 ArangoDB 企业版,您可以尝试使用 HotBackups HTTP API: https://docs.arangodb.com/3.11/develop/http/hot-backups/

它允许远程触发转储和恢复,因此您只需要从应用程序触发 API 即可。一些驱动程序已经支持此 API,例如go-driver:https://github.com/arangodb/go-driver/blob/master/client_admin_backup.go#L122

© www.soinside.com 2019 - 2024. All rights reserved.