如何在Google Compute Engine上运行Docker?

时间:2013-12-06 16:51:13

标签: docker google-compute-engine

Docker上安装和运行Google Compute Engine的步骤是什么?

13 个答案:

答案 0 :(得分:20)

直到最近GA发布的Compute Engine,GCE不支持运行Docker(由于内核限制),但由于新发布的部署和使用自定义内核的能力,这种限制不再完整,Docker现在可以很好地运行GCE。

感谢proppy,现在为您记录了在Google Compute Engine上运行Docker的说明:http://docs.docker.io/en/master/installation/google/。享受!

答案 1 :(得分:14)

他们现在拥有一个预先安装了docker的虚拟机。

$ gcloud compute instances create instance-name
--image projects/google-containers/global/images/container-vm-v20140522
--zone us-central1-a
--machine-type f1-micro

https://developers.google.com/compute/docs/containers/container_vms

答案 2 :(得分:6)

有点晚了,但我想用更详细的工作流程和链接添加答案,因为答案仍然相当分散:

  1. 创建Docker镜像

    一个。本地

    湾使用Google容器生成器

  2. 将本地Docker镜像推送到Google容器存储库

    docker tag <current name>:<current tag> gcr.io/<project name>/<new name>

    gcloud docker -- push gcr.io/<project name>/<new name>

    <强>更新

    如果您已升级到18.03以上的Docker客户端版本,则不再支持gcloud docker命令。而不是上面的推动,使用:

    docker push gcr.io/<project name>/<new name>

    如果升级后遇到问题,请参阅更多here

  3. 创建计算实例。 这个过程实际上混淆了许多步骤。它使用Google Compute Engine创建虚拟机(VM)实例,该实例使用Google提供的容器优化操作系统映像。该图像包括Docker和负责启动我们的docker容器的其他软件。然后从Container Repository中提取我们的容器映像,并在VM启动时使用docker run运行。注意:即使容器正在运行,您仍需要使用docker attach。值得指出的是,每个VM实例只能运行一个容器。使用Kubernetes为每个VM部署多个容器(步骤类似)。有关此帖子底部链接中所有选项的更多详细信息。

    gcloud beta compute instances create-with-container <desired instance name> \ --zone <google zone> \ --container-stdin \ --container-tty \ --container-image <google repository path>:<tag> \ --container-command <command (in quotes)> \ --service-account <e-mail>

    提示您可以使用gcloud projects list

  4. 查看可用的gcloud项目
  5. SSH进入计算实例。

    gcloud beta compute ssh <instance name> \ --zone <zone>

  6. 停止或删除实例。如果实例已停止,您仍需要为静态IP和永久磁盘等资源付费。为了避免被收费,请使用删除实例。

    一个。的停止

    gcloud compute instances stop <instance name>

    删除

    gcloud compute instances delete <instance name>

  7. 相关链接:

答案 3 :(得分:4)

Google的GitHub网站现在提供包含docker的gce图像。 https://github.com/GoogleCloudPlatform/cloud-sdk-docker-image

答案 4 :(得分:4)

这很简单:

  • 创建计算引擎实例
  • curl https://get.docker.io | bash

答案 5 :(得分:3)

使用docker-machine是使用docker托管Google计算实例的另一种方法。

docker-machine create \
  --driver google \
  --google-project $PROJECT \
  --google-zone asia-east1-c \
  --google-machine-type f1-micro $YOUR_INSTANCE

如果您想在google云计算实例上登录此计算机,只需使用docker-machine ssh $YOUR_INSTANCE

即可

请参阅docker machine driver gce

答案 6 :(得分:1)

现在改进了对containers on GCE的支持:

  

Google Compute Engine正在扩展其对Docker容器的支持。此版本是容器优化的操作系统映像的打开预览版,其中包括Docker和管理容器的open source agent。下面,您将找到与在Google上对Docker感兴趣的社区进行交互的链接,开源存储库以及开始使用的示例。我们期待听到您的反馈并了解您的建设。

请注意,这是 Open Preview 目前(截至2014年5月27日):

  

这是虚拟机上容器的 Open Preview 版本。因此,我们可能会进行向后不兼容的更改,并且不受任何SLA或弃用策略的约束。客户在使用此Open Preview版本时应考虑到这一点。

答案 7 :(得分:1)

不支持在GCE实例上运行Docker。实例关闭,无法再次登录。 我们可以使用GCE提供的Docker镜像来创建实例。 enter image description here

答案 8 :(得分:1)

如果您的Google云虚拟机基于ubuntu,请使用以下命令安装docker sudo apt安装docker.io

答案 9 :(得分:1)

您可以使用以下链接:https://cloud.google.com/cloud-build/docs/quickstart-docker#top_of_page

上述链接说明了如何使用Cloud Build构建Docker映像并将该映像推送到Container Registry。您将首先使用Dockerfile构建映像,然后使用Cloud Build的构建配置文件构建同一映像。

答案 10 :(得分:0)

在创建计算实例

时更好
  1. 转到VM实例页面。
  2. 单击“创建实例”按钮以创建新实例。
  3. 在Container部分下,选中Deploy container image。
  4. 在容器映像下指定容器映像名称,并根据需要配置运行容器的选项。例如,您可以为容器图像指定gcr.io/cloud-marketplace/google/nginx1:1.12。
  5. 点击“创建”。

答案 11 :(得分:0)

到目前为止,对于 just Docker,容器优化的OS无疑是必经之路:

gcloud compute images list --project=cos-cloud --no-standard-images

它预装了Docker和Kubernetes。它唯一缺少的是Cloud SDK命令行工具。 (尽管Google于2020年1月1日宣布了Python 2日落,但它也缺少python3。嗯,还有27天的时间。。。)


作为我想分享的其他信息,我正在寻找一个标准映像,该映像将同时提供 docker和gcloud / gsutil(没有,哎呀)。我不认为我一个人在这条船上,因为gcloud是您在没有GCE¹的情况下无法避免的事情。

到目前为止,我最好的发现是Ubuntu 18.04映像,该映像带有自己的(非Debian)软件包管理器snap。该映像随附了预安装的Cloud SDK,而Docker则是在F1实例初始测试中以11秒的速度立即完成字面上的安装,在n1-standard-1上约为6秒。我遇到的唯一障碍是错误消息,指出泊坞窗授权助手不可用。尝试使用gcloud components install添加它的尝试失败了,因为该SDK也是作为快照安装的。但是,the helper is actually there(仅不在PATH中)。以下是让我在最少的设置脚本运行时中就在单个瞬态生成器VM中使用这两个工具的原因,这些工具从受支持的Ubuntu 18.04 LTSimage²开始:

snap install docker
ln -s /snap/google-cloud-sdk/current/bin/docker-credential-gcloud /usr/bin
gcloud -q auth configure-docker

¹我需要一个Daisy工作流来对磁盘进行映像,该磁盘具有GS桶中的工件和来自本地gcr.io注册表的两个巨大的2GB +库映像,这些映像在构建(作为云构建器层)和运行时之间共享(我必须在其中创建容器并将其提取到新建的映像中)。但这不是重点。一个人可能出于多种可能需要使用这两种工具。
²使用gcloud compute images list --uri | grep ubuntu-1804获取最新的。

答案 12 :(得分:0)

在 GCP Compute Engine 虚拟机上安装 Docker:
这是有关该主题的 GCP 文档的链接:
inherited theme

它链接到 https://cloud.google.com/compute/docs/containers#installing,您应该按照说明进行操作,具体取决于您在 vm 中运行的 Linux 类型。