gcloud docker 无法在 Compute Engine VM 上运行
gcloud docker not working on Compute Engine VM
我正在尝试将 docker 图像从 Container Engine 获取到 Compute Engine VM 上的 运行。在我的笔记本电脑上,我可以 运行 gcloud docker pull gcr.io/projectid/image-tag
我刚刚在 Compute Engine 上启动了一个 Debian VM,但是当我尝试 运行 任何 gcloud docker
命令时,我得到 ERROR: (gcloud.docker) Docker is not installed.
> gcloud --version
Google Cloud SDK 140.0.0
alpha 2017.01.17
beta 2017.01.17
bq 2.0.24
bq-nix 2.0.24
core 2017.01.17
core-nix 2017.01.17
gcloud
gsutil 4.22
gsutil-nix 4.22
> gcloud docker --version
ERROR: (gcloud.docker) Docker is not installed.
https://cloud.google.com/sdk/gcloud/reference/docker 看起来 gcloud docker
应该有效。
我是否应该在 运行 宁 gcloud docker
之前在 VM 上安装 docker?
Am I supposed to install docker on the VM before running gcloud docker?
是的。错误消息告诉您 Docker 需要安装在计算机上才能使 gcloud docker
工作。
您可以在 Debian VM 上手动安装 docker,也可以在计算机上启动具有 docker pre-installed 的 VM,例如 Container-Optimized OS from Google。
根据直觉,我尝试用 sudo apt-get install docker
安装 docker,但我错了,实际的 docker 包名称是 docker.io
,所以我重新启动了该过程并以这种方式工作:
- 安装 docker 软件包:
sudo apt-get install docker.io
- 测试 docker 是否正常工作
sudo gcloud docker ps
- 从图像存储库中拉取您的图像,例如gcr.io。如果没有
一个特定的标签使用 最新的 一个。
sudo gcloud docker -- pull gcr.io/$PROJECT_NAME/$APPLICATION_IMAGE_NAME:latest
- 运行 你的形象。请记住正确指定端口映射,第一个端口是将在 GCE 实例中暴露的端口,第二个端口是 docker 容器内部暴露的端口,例如
EXPOSE 8000
。例如,在下面的示例中,我的应用程序配置为在 8000
端口上工作,但它将被默认 www 端口上的 public 访问,即 80
.
sudo docker run -d -p 80:8000 --name=$APPLICATION_IMAGE_NAME \
--restart=always gcr.io/$PROJECT_NAME/$APPLICATION_IMAGE_NAME:latest
--restart
标志将允许此容器在每次实例重新启动时重新启动
希望对你有用。
我正在尝试将 docker 图像从 Container Engine 获取到 Compute Engine VM 上的 运行。在我的笔记本电脑上,我可以 运行 gcloud docker pull gcr.io/projectid/image-tag
我刚刚在 Compute Engine 上启动了一个 Debian VM,但是当我尝试 运行 任何 gcloud docker
命令时,我得到 ERROR: (gcloud.docker) Docker is not installed.
> gcloud --version
Google Cloud SDK 140.0.0
alpha 2017.01.17
beta 2017.01.17
bq 2.0.24
bq-nix 2.0.24
core 2017.01.17
core-nix 2017.01.17
gcloud
gsutil 4.22
gsutil-nix 4.22
> gcloud docker --version
ERROR: (gcloud.docker) Docker is not installed.
https://cloud.google.com/sdk/gcloud/reference/docker 看起来 gcloud docker
应该有效。
我是否应该在 运行 宁 gcloud docker
之前在 VM 上安装 docker?
Am I supposed to install docker on the VM before running gcloud docker?
是的。错误消息告诉您 Docker 需要安装在计算机上才能使 gcloud docker
工作。
您可以在 Debian VM 上手动安装 docker,也可以在计算机上启动具有 docker pre-installed 的 VM,例如 Container-Optimized OS from Google。
根据直觉,我尝试用 sudo apt-get install docker
安装 docker,但我错了,实际的 docker 包名称是 docker.io
,所以我重新启动了该过程并以这种方式工作:
- 安装 docker 软件包:
sudo apt-get install docker.io
- 测试 docker 是否正常工作
sudo gcloud docker ps
- 从图像存储库中拉取您的图像,例如gcr.io。如果没有 一个特定的标签使用 最新的 一个。
sudo gcloud docker -- pull gcr.io/$PROJECT_NAME/$APPLICATION_IMAGE_NAME:latest
- 运行 你的形象。请记住正确指定端口映射,第一个端口是将在 GCE 实例中暴露的端口,第二个端口是 docker 容器内部暴露的端口,例如
EXPOSE 8000
。例如,在下面的示例中,我的应用程序配置为在8000
端口上工作,但它将被默认 www 端口上的 public 访问,即80
.
sudo docker run -d -p 80:8000 --name=$APPLICATION_IMAGE_NAME \
--restart=always gcr.io/$PROJECT_NAME/$APPLICATION_IMAGE_NAME:latest
--restart
标志将允许此容器在每次实例重新启动时重新启动
希望对你有用。