【发布时间】:2020-02-19 09:23:04
【问题描述】:
我正在尝试在 GCE 上为 MongoDB 使用 Percona Docker 映像,但是我遇到了 Mongo 的问题,说安装的路径是只读的。我尽可能地环顾四周,但我不知道可能是什么问题。
gcloud compute instances create-with-container mongo-svr \
--create-disk name=disk-1,size=1GB \
--container-mount-disk mount-path="/data/mongodb",mode=rw \
--container-image=docker.io/percona/percona-server-mongodb:4.2
我使用了上面的命令,它创建了我的实例。然后我 SSH 进入服务器,连接到正在运行的 mongo 实例关闭,然后我运行:docker exec -it [NAME] mongod --configsvr --replSet rs0 --dbpath=/data/mongodb --bind_ip localhost
这会吐出一个错误说明:
CONTROL [initandlisten] options: { net: { bindIp: "localhost" }, replication: { replSet: "rs0" }, sharding: { clusterRole: "configsvr" }, storage: { dbPath: "/data/mongodb" } }
STORAGE [initandlisten] exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: /data/mongodb, terminating
此时,我一直在使用不同的参数重新创建实例,但到目前为止没有任何效果。有人知道我缺少什么吗?
已更新命令输出
gcloud compute instances create-with-container mongo-config-f --zone us-central1-f --create-disk name=disk-1,size=1GB --container-mount-disk mount-path="/data/mongodb" --container-image=docker.io/percona/percona-server-mongodb:4.2 --machine-type=f1-micro
WARNING: Default device-name for disk name [disk-1] will be [disk-1] because it is being mounted to a container with [`--container-mount-disk`]
Created [https://www.googleapis.com/compute/v1/projects/[PROJECT_NAME]/zones/us-central1-f/instances/mongo-config-f].
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
mongo-config-f us-central1-f f1-micro xx.xx.xx.xx xx.xx.xx.xx RUNNING
【问题讨论】:
-
我知道
mode=rw不是必需的,但由于没有任何效果,因此希望明确。运行带有/不带有它的命令会导致相同的结果。至于挂载, /data/mongodb 没有挂载。但是,我的理解是,您为--create-disk(disk-1) 使用的名称将导致/mnt/disks/gce-containers-mounts/gce-persistent-disks/disk-1,这将是docker 容器的安装点,内部映射到/data/mongodb。所以调用mount不会显示该路径,而是显示/mnt/disks/路径。
标签: mongodb docker google-compute-engine gce-persistent-disk