如何将永久磁盘挂载到容器卷?

时间:2014-11-23 18:38:40

标签: google-compute-engine

我正在玩Google's managed VM feature并发现你可以很容易地创建一些有趣的设置。但是,我还没有弄清楚是否可以使用persistent disks在容器上安装卷,并且似乎没有此功能限制托管VM对有状态容器(如数据库)的有用性。

所以问题是:如何将Google为我的Compute引擎实例创建的持久性磁盘装载到容器卷?

2 个答案:

答案 0 :(得分:2)

将永久磁盘附加到Google Compute Engine实例

关注the official persistent-disk指南:

  • 创建磁盘
  • 附加到实例during instance creationto a running instance
  • 使用工具/usr/share/google/safe_format_and_mount挂载设备文件/dev/disk/by-id/google-...
  • 如Faizan所述,使用docker run -v /mnt/persistent_disk:/container/target/path在Docker容器中包含该卷

引用Google容器引擎中的永久磁盘

在此方法中,您在Replication Controller或Pod声明中以声明方式指定卷(在如上所述初始化之后...)。以下是复制控制器JSON声明的最小摘录。请注意,必须将卷声明为只读,因为一次只能有两个实例写入永久磁盘。

{
    "id": "<id>",
    "kind": "ReplicationController",
    "apiVersion": "v1beta1",
    "desiredState": {
        "replicas": 3,
        "replicaSelector": {
            "name": "<id>"
        },
        "podTemplate": {
            "desiredState": {
                "manifest": {
                    "version": "v1beta1",
                    "id": "<id>",
                    "containers": [
                        {
                            "name": "<id>",
                            "image": "<docker_image>",
                            "volumeMounts": [
                                {
                                    "name": "persistent_disk",
                                    "mountPath": "/pd",
                                    "readOnly": true
                                }
                            ],
                            ...
                        }
                    ],
                    "volumes": [
                        {
                            "name": "persistent_disk",
                            "source": {
                                "persistentDisk": {
                                    "pdName": "<persistend_disk>",
                                    "fsType": "ext4",
                                    "readOnly": true
                                }
                            }
                        }
                    ]
                }
            },
            "labels": {
                "name": "<id>"
            }
        }
    },
    "labels": {
        "name": "<id>"
    }
}

答案 1 :(得分:0)

如果您的永久磁盘已连接并已安装到实例,我相信您可以将其用作Docker容器的数据卷。我找到了docker documentation,它解释了如何管理容器中的数据的步骤。