透過 SSH 連接到 GCP 計算引擎上新部署的容器

透過 SSH 連接到 GCP 計算引擎上新部署的容器

我想簡單地透過 SSH 連接到部署在 GCP 計算引擎上的容器,而無需跳過任何環節。

首先,我使用容器建立一個計算實例:

gcloud compute instances create-with-container instance_name --container-image gcr.io/my-container-path:latest

然後嘗試 ssh 進入:

gcloud compute ssh instance_name --container CONTAINER_NAME

問題是 CONTAINER_NAME 未知。當您以確定性方式建立實例時,似乎無法設定容器名稱。因此,在建立實例後,您需要在其上執行「docker ps」以確定隨機名稱,然後才能使用 SSH 功能。

這看起來像是一個標準的使用模式,我一定錯過了一些東西。有沒有更好的辦法?

答案1

我不知道在建立虛擬機器實例時可以選擇命名容器。

作為解決方案,您可以執行命令來列出容器映像。該命令將運行一次以獲取圖像名稱。將其放入 shell 腳本中。

gcloud compute ssh $INSTANCE_NAME \
--project $PROJECT_ID \
--zone $ZONE_NAME \
--ssh-key-file $SSH_PRIVATE_KEY \
--command "docker ps"

注意:您可以將 CLI 設定為不需要指定項目和區域以簡化命令:

gcloud config set project PROJECT_ID
gcloud config set compute/zone ZONE_NAME

如果實例使用預設的 SSH 私鑰,則命令可以進一步簡化,即〜/.ssh/google_compute_engine

這將命令減少為:

gcloud compute ssh $INSTANCE_NAME --command "docker ps"

答案2

連接到正在運行的容器的單一命令版本:

gcloud compute ssh my-vm --project=my-project  --container=$(gcloud compute ssh my-vm --project=my-project --command 'sudo docker ps --format {{.ID}}')

相關內容