【问题标题】:How do I SSH from a Docker container to a remote server如何从 Docker 容器 SSH 到远程服务器
【发布时间】:2019-04-14 18:45:52
【问题描述】:

我正在从 postgres 图像构建一个 docker 图像,我想用一些数据作为种子。

我正在关注文档的initialization-scripts 部分。

但我现在面临的问题是,我的初始化脚本需要通过 ssh 连接到远程数据库并从那里获取哑数据。基本上是这样的:

ssh remote.host "pg_dump -U user -d somedb" > some.sql

但是这失败了ssh: command not found

现在的问题是,一般来说,我如何从 docker 容器 ssh 到远程服务器。在这种情况下,具体来说,作为播种 postgres 数据库的初始化步骤的一部分,我如何从 docker 容器 ssh 到远程数据库服务器?

【问题讨论】:

  • 在这里对否决票和关闭投票的解释是合适的。

标签: postgresql docker ssh


【解决方案1】:

一般来说,您不会以这种方式做事。典型的 Docker 映像包含它们正在运行的服务器和一些核心工具,但像 sshcurl 这样的网络客户端通常不属于其中的一部分。在 ssh 的特殊情况下,安全管理所需的凭据也很棘手(并非不可能,但并不明显)。

在您的特定情况下,我可能会重新安排一些事情,以便您的脚本不会硬假设数据库在本地运行。配置一个空的数据库容器,然后从主机运行您的脚本,以该空数据库为目标。甚至可以将 PGHOSTPGPORT 环境变量设置为指向主机的主机名和发布数据库接口的端口,然后不加修改地运行该脚本。

仔细查看该特定命令,您还可能会发现最好设置一个 cron 作业来运行该特定数据库转储并将内容放在某处。然后,开发人员无需连接到实时数据库服务器即可获取数据快照,并且您可以限制可以访问的人数。获得此转储文件后,您可以使用/docker-entrypoint-initdb.d 机制使其在首次启动时被加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    相关资源
    最近更新 更多