代码之家  ›  专栏  ›  技术社区  ›  dade

如何从Docker容器SSH到远程服务器

  •  0
  • dade  · 技术社区  · 7 年前

    我正在用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到远程数据库服务器?

    0 回复  |  直到 7 年前
        1
  •  1
  •   David Maze    7 年前

    一般来说,你不会这样做。典型的Docker图像包含 只有 他们运行的服务器和一些核心工具,但是网络客户端喜欢 ssh 或 curl 一般来说,这不是其中的一部分。在特殊情况下 宋承宪

    在您的特定情况下,我可能会重新安排一些内容,这样您的脚本就不会有数据库在本地运行的硬假设。设置空数据库容器,然后运行脚本 从主人那里 目标是那个空数据库。甚至可以设置 PGHOST 和 PGPORT 环境变量指向主机的主机名和发布数据库接口的端口,然后未经修改运行该脚本。

    仔细观察这个特定的命令,您可能会发现最好设置一个cron作业来运行该特定的数据库转储并将内容放在某个地方。然后,开发人员可以获得数据的快照,而无需连接到实时数据库服务器,并且您可以限制将具有访问权限的人数。一旦有了这个转储文件,就可以使用 /docker-entrypoint-initdb.d 使其在第一次启动时加载的机制。