【问题标题】:Best way to copy files from Docker volume on remote server to local host?将文件从远程服务器上的 Docker 卷复制到本地主机的最佳方法?
【发布时间】:2018-07-12 05:07:53
【问题描述】:

我有,

  1. 我的笔记本电脑
  2. 我可以通过 SSH 访问的远程服务器有一个 Docker 卷,里面有一些我想复制到我的笔记本电脑的文件。

复制这些文件的最佳方法是什么?使用 rsync 等快速/可以恢复/显示进度并且不写入任何临时文件的东西的奖励积分。

注意:我在远程服务器上的用户没有权限直接从/var/lib/docker 中的卷挂载中提取数据,尽管我可以在那里运行任何容器。

【问题讨论】:

    标签: ssh docker file-transfer


    【解决方案1】:

    遇到这个问题,我创建了dvsync,它使用ngrok 建立一个隧道,rsync 正在使用该隧道来复制数据,即使机器位于私有 VPC 中也是如此。要使用它,首先在本地启动dvsync-server,将其指向源目录:

    $ docker run --rm -e NGROK_AUTHTOKEN="$NGROK_AUTHTOKEN" \
      --mount source=MY_DIRECTORY,target=/data,readonly \
      quay.io/suda/dvsync-server
    

    注意,您需要NGROK_AUTHTOKEN,可以从ngrok dashboard 获得。然后在目标机器上启动dvsync-client

    docker run -e DVSYNC_TOKEN="$DVSYNC_TOKEN" \
      --mount source=MY_TARGET_VOLUME,target=/data \
      quay.io/suda/dvsync-client
    

    DVSYNC_TOKEN 可以在dvsync-server 输出中找到,它是一个 base64 编码的私钥和隧道信息。复制数据后,客户端将退出。

    【讨论】:

      【解决方案2】:

      我不确定这样做的最佳方式,但如果我是你,我会运行一个共享同一卷的容器(只读 - 因为你似乎只想下载卷中的文件) 并下载论文。

      此容器可以根据需要运行 rsync。

      【讨论】:

        猜你喜欢
        • 2023-01-19
        • 2019-10-07
        • 1970-01-01
        • 1970-01-01
        • 2018-09-04
        • 2021-03-08
        • 2022-11-24
        • 2021-12-25
        • 1970-01-01
        相关资源
        最近更新 更多