gcloud应该从哪里构建docker镜像?

3

我在这里读到,我可以使用gcloud SDK从容器镜像创建实例。以下是他们如何为nginx操作的方法。

gcloud alpha compute instances create-from-container nginx-vm \
    --docker-image=gcr.io/google-containers/nginx:latest \
    --port-mappings=80:80:TCP

我想用我制作的一个node镜像来做这件事。我可以使用docker run -p 49160:8080 -d myusername/node-web-app在本地运行它,但是我不知道这个镜像在哪里。我的理解是,我可以将镜像直接传输到云计算上运行的VM中,然后使用类似上面那个代码片段的方法进行操作。我该如何找到这个镜像呢?这个问题表明它们位于/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2,但那里的列表看起来并不十分有希望。
- .
- ..
- Docker.qcow2
- console-ring
- console-ring.0
- console-ring.1
- console-ring.2
- console-ring.3
- console-ring.4
- console-ring.5
- hypervisor.pid
- lock
- log
- mac.0
- nic1.uuid
- pid
- syslog
- tty -> /dev/ttys000

这是在云计算上从容器构建的正确方式吗?如果是,那么构建应用程序所需的图像在哪里?

1个回答

6

我不明白图片在哪里。

它在你的本地docker仓库中(可以由本地注册服务提供,但你这里不需要)

我的理解是我只需将图像通过scp上传到在云计算上运行的VM,然后运行"gcloud alpha compute instances create-from-container"命令。

不完全正确:你可以将本地镜像推送到谷歌云的注册表服务中: 参见 "GCP: 推送和拉取镜像"

一旦镜像被推送,就可以使用 "gcloud alpha compute instances create-from-container" 命令。

因此,你不需要精确地知道你的镜像存储在何处。
你只需要:

  • Tag your image by running the following Docker command:

      docker tag [IMAGE] [HOSTNAME]/[YOUR-PROJECT-ID]/[IMAGE]
    
  • push the image to Container Registry by running the following command:

      gcloud docker -- push [HOSTNAME]/[YOUR-PROJECT-ID]/[IMAGE]
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接