使用 gcloud 在 VM 中输入容器

问题描述

考虑在 Google Cloud Platform 环境中使用容器优化的 VM。

可以进入虚拟机:

gcloud compute ssh __machine__

要进入正在运行的容器,这变得越来越棘手:

CONTAINER=`gcloud compute ssh __machine__ --command 'docker ps -q | head -1'`
gcloud compute ssh machine --container $CONTAINER

这已经够丑了,与使用 docker exec -it bash 进入容器相比,它以 sh 开头而不是 bash

有没有办法简化上面的命令并认启动 bash

解决方法

例如当您run a container,you can give it a name时:

docker run --name foo unbunt:latest

并且您可以使用容器名称进行交互,而无需使用各种方法找出容器的名称,例如您使用

docker ps -q | head -1

当容器名称已知时,例如foo,您可以execute something within it

docker exec foo /bin/bash

有没有办法简化上面的命令并默认启动 bash

您需要更改容器入口点,方法是在 docker run --entrypoint 上或在 Dockerfile using the ENTRYPOINT instruction

内覆盖它