【发布时间】:2013-12-24 02:55:56
【问题描述】:
在Google Compute Engine上安装和运行Docker的过程是什么?
【问题讨论】:
-
遗憾的是,谷歌还没有为 Docker developers.google.com/search/results?q=docker创建任何文档
标签: docker google-compute-engine
在Google Compute Engine上安装和运行Docker的过程是什么?
【问题讨论】:
标签: docker google-compute-engine
在 Compute Engine 的最近 GA 版本之前,GCE 不支持运行 Docker(由于内核限制),但随着新宣布的部署和使用自定义内核的能力,该限制不再完整,Docker 现在可以很好地在GCE。
感谢proppy,现在在此处为您记录了在 Google Compute Engine 上运行 Docker 的说明:http://docs.docker.io/en/master/installation/google/。享受吧!
【讨论】:
https://github.com/GoogleCloudPlatform/container-vm-guestbook-redis-python 也不起作用,因为端口 80 被 GCE 主机实例上的 Docker 进程占用,并且在更改应用程序的端口后,仍然无法弄清楚为什么端口没有被转发.如果您可以通过正确的端口映射共享在 GCE 上成功运行的 todo 或 hello-world 应用程序,那将有很大帮助。
Google 的 GitHub 站点现在提供包含 docker 的 gce 映像。 https://github.com/GoogleCloudPlatform/cloud-sdk-docker-image
【讨论】:
很简单:
curl https://get.docker.io | bash【讨论】:
curl https://get.docker.io 更安全。您永远不想从不安全的数据包中获取代码并执行它。
现在改进了对 containers on GCE 的支持:
Google Compute Engine 正在扩展对 Docker 容器的支持。此版本是容器优化操作系统映像的开放预览版,其中包括 Docker 和用于管理容器的 open source agent。下面,您将找到与对 Google 上的 Docker、开源存储库和示例感兴趣的社区进行交互的链接。我们期待听到您的反馈并看到您构建的内容。
请注意,目前(截至 2014 年 5 月 27 日)打开预览:
这是虚拟机上容器的 Open Preview 版本。因此,我们可能会进行向后不兼容的更改,并且它不包含在任何 SLA 或弃用政策中。客户在使用此 Open Preview 版本时应考虑到这一点。
【讨论】:
他们现在有一个预先安装了 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
【讨论】:
$ gcloud compute images list --no-standard-images --project=google-containers 返回“列出 0 项”
使用docker-machine 是另一种使用 docker 托管您的谷歌计算实例的方式。
docker-machine create \
--driver google \
--google-project $PROJECT \
--google-zone asia-east1-c \
--google-machine-type f1-micro $YOUR_INSTANCE
如果你想在谷歌云计算实例上登录本机,只需使用docker-machine ssh $YOUR_INSTANCE
【讨论】:
最好在创建计算实例时获取
【讨论】:
【讨论】:
sudo curl https://sdk.cloud.google.com | bash 在 ChromiumOS 上不起作用:'permission denied'。
curl .... | sudo bash 是正确的管道。 Shell 解析管道并运行两个命令:第一个是sudo(带有参数curl etc.),第二个是bash。 sudo 不必要地提升 curl,但需要提升权限的 bash 以您的用户 ID 运行。
有点晚了,但我想添加一个更详细的工作流程和链接的答案,因为答案仍然相当分散:
创建 Docker 映像
一个。本地
b.使用 Google Container Builder
将本地 Docker 映像推送到 Google Container Repository
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。
创建一个计算实例。 这个过程实际上混淆了许多步骤。它使用谷歌计算引擎创建一个虚拟机 (VM) 实例,该引擎使用谷歌提供的容器优化操作系统映像。该映像包括 Docker 和负责启动我们的 docker 容器的其他软件。然后从容器存储库中提取我们的容器映像,并在虚拟机启动时使用 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查看可用的 gcloud 项目
SSH 进入计算实例。
gcloud beta compute ssh <instance name> \
--zone <zone>
停止或删除实例。如果实例停止,您仍需要为静态 IP 和永久性磁盘等资源付费。为避免被计费,请使用删除实例。
一个。 停止
gcloud compute instances stop <instance name>
b. 删除
gcloud compute instances delete <instance name>
相关链接:
【讨论】:
gcloud container builds submit --tag gcr.io/<project name>/<new name> . 代替docker tag 和gcloud docker --push,这将构建映像并将其直接发送到google 存储库,跳过docker 存储库步骤。
如果你的谷歌云虚拟机是基于ubuntu的,使用以下命令安装docker sudo apt install docker.io
【讨论】:
您可以使用此链接:https://cloud.google.com/cloud-build/docs/quickstart-docker#top_of_page。
上述链接解释了如何使用 Cloud Build 构建 Docker 镜像并将镜像推送到 Container Registry。您将首先使用 Dockerfile 构建镜像,然后使用 Cloud Build 的构建配置文件构建相同的镜像。
【讨论】:
到目前为止,只是 Docker,容器优化的操作系统肯定是要走的路:
gcloud compute images list --project=cos-cloud --no-standard-images
它预装了 Docker 和 Kubernetes。它唯一缺少的是 Cloud SDK 命令行工具。 (尽管谷歌在 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 秒。我遇到的唯一问题是 docker 授权助手不可用的错误消息;尝试使用 gcloud components install 添加它失败了,因为 SDK 也是作为 snap 安装的。但是,the helper is actually there,只是不在 PATH 中。从受支持的 Ubuntu 18.04 LTS 映像开始,以下是我在单个临时构建器 VM 中以最少的设置脚本运行时提供的两种工具的原因:
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 获取最新的。
【讨论】:
在 GCP Compute Engine 虚拟机上安装 Docker:
这是有关该主题的 GCP 文档的链接:
https://cloud.google.com/compute/docs/containers#installing
它链接到Docker install guide,你应该根据你在vm中运行的Linux类型来遵循说明。
【讨论】: