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

GCloud: Copying Files from Local Machine into a Docker Container

是否有直接的方法将文件从本地计算机复制到 Google Compute Engine 上的 VM 实例中的 docker 容器中?

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

命令创建了这个 VM 和 docker 容器

请注意,如果能有一个 rsync 类型的功能就好了。

不幸的是,如果您没有进行一些设置,它似乎不可用(并且它不是测试版):尽管创建了一个卷映射,您可以通过容器内的 运行 sshd 自行侦听来完成映射到主机的端口:

  • gcloud compute firewall-rules create CONTAINER-XX-SSH-RULE --allow tcp:2022 --target-tags=XX-HOST

  • gcloud compute scp --port 2022 --recurse stuff/ user@XX-HOSTNAME:

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

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

首先,当我准备好部署时,'local' 开发机器上的数据被推送到对象存储中。

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

然后 VM 使用 s3 sync 从对象存储中提取内容。我认为您可以对 gsutil 做同样的事情,将数据从 Google 对象存储中提取到 Google 容器中。 (事实上​​ ,您甚至可以使用 gsutil 在云之间进行 rsync)。

这是我的小型开发运营环境。这需要做更多的工作,但是使用对象存储作为在机器之间同步数据快照的中间人提供了一点灵活性、可重现的环境和安心。