在使用 gcloud 控制台创建的容器优化操作系统 [COS] 上的 GCP 计算实例中安装磁盘

Wak*_*u-2 0 google-compute-engine google-cloud-platform gcloud

所以我使用这个 gcloud 控制台命令从容器映像创建一个实例

gcloud compute instances create-with-container test-instance \
--zone us-xx \
--container-image asia.gcr.io/my-project/my-docker-image \
--container-privileged \
--network my-network \
--subnet my-net-sub \
--create-disk name=test-data,device-name=test-data,auto-delete=yes,size=200GB,type=pd-ssd \
--container-mount-disk name=test-data,mount-path=/mnt/disks/data \
--service-account me@myproject.iam.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)

它工作正常并创建实例,但它不会安装数据磁盘。为什么?更准确地说,要添加我需要的数据磁盘

  • 创建整个磁盘的单个分区并创建ext4文件系统
  • 并将磁盘挂载到给定路径上

如何指定使用ext4创建分区,然后挂载分区部分?

Woj*_*k_B 6

您无法将主机的磁盘挂载到容器(在两者中使用相同的磁盘)。不过,您可以安装目录或另一个磁盘。无论哪种方式,您都可以在其上存储数据,并且两个操作系统(主机和容器)都可以从中读取/写入。

假设您希望将主机操作系统磁盘中的所有数据存储在 中/datadir/,并且希望将其安装在 下的容器内/mnt/disks/data。您将在下面找到一个完整的(并经过测试的)示例来使用:

gcloud compute instances create-with-container mytestvm1 \
--zone=europe-west3-c \
--container-image=gcr.io/google-containers/mycontainer \
--container-privileged \
--network default \
--subnet default \
--create-disk name=test-data,device-name=test-data,auto-delete=yes,size=20GB,type=pd-ssd \
--container-mount-host-path=mount-path=/mnt/disks/data,host-path=/home/myhomedir/,mode=rw \
--service-account=my_service_account@developer.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)

如果您需要安装另一个磁盘,只需更改该行:

--container-mount-host-path=mount-path=/mnt/disks/data,host-path=/home/myhomedir/,mode=rw \

--container-mount-disk=mount-path=/mnt/disks/data,name=data1,mode=rw \