GCloud:将文件从本地机器复制到Docker容器中

有没有一种直接的方法将文件从本地机器复制到Google Compute Engine上的VM实例中的Docker容器中?

我知道gcloud compute ssh --container=XX是在容器上执行命令的简单方法,但是没有类似的gcloud compute scp --container=XX 。 注意:我使用命令gcloud alpha compute instances create-from-container ...创build了此VM和gcloud alpha compute instances create-from-container ...

请注意,不仅仅是能够传输文件,具有rsynctypes的function会更好。

不幸的是,如果没有一些设置(不是testing版),看起来不可用:创build一个卷映射,尽pipe你可以通过在容器中运行sshd来监听自己的映射到主机的端口:

  • gcloud计算防火墙规则创buildCONTAINER-XX-SSH-RULE – 允许tcp:2022 –target-tags = XX-HOST

  • gcloud计算scp –port 2022 – recursion的东西/ user @ XX-HOSTNAME:

    要么

  • scp -r -P 2022 stuff / user @ xx-host-ip:

我通常使用一种方法,在本地机器和云虚拟机之间使用对象存储。 在AWS上我使用s3 sync ,在Google上你可以使用gsutil rsync

首先,当我准备部署“本地”开发机器上的数据时,它会被推送到对象存储中。

  • (有问题的数据是git仓库+一些二进制文件的快照)。
  • (有时候,有问题的开发机器是笔记本电脑,有时是我的桌面,有时候是云IDE,他们都运行git)。

然后,VM使用s3 sync从对象存储中提取内容。 我想你也可以用gsutil把Google对象存储中的数据放到Google容器中。 (事实上​​,你甚至可以使用gsutil在云之间进行rsync)。

这是我的鞋子dev-ops环境。 这是一个更多的工作,但使用对象存储作为中间人同步数据之间的数据快照提供了一些灵活性,一个可重复的环境和安心。