【问题标题】:Docker shared volume creationDocker 共享卷创建
【发布时间】:2016-08-29 07:07:29
【问题描述】:

我正在尝试创建一个将在 2 个主机之间共享的 docker 卷。 假设我有两台主机 A 和 B。当使用以下命令在主机 A 上创建卷时:

docker volume create --driver local --opt type=nfs --opt o=addr=B,rw --opt device=:/tmp/dir --name foo

检查体积后,结果如下:

  docker volume inspect foo
 [
    {
    "Name": "foo",
    "Driver": "local",
    "Mountpoint": "/var/lib/docker/volumes/foo/_data",
    "Labels": {},
    "Scope": "local"
    }
 ]

我的问题是:为什么卷的 Mountpoint 目录不指向目录 /tmp/dir,而是指向默认的 docker 卷位置?如何认为目录主机 B/tmp/dir 中的数据是可共享的?

提前致谢!

【问题讨论】:

  • 看起来您正在创建一个命名卷(命名为 foo)。并且命名卷位置由 Docker 处理,无法控制(我认为)

标签: docker docker-compose dockerfile docker-machine docker-volume


【解决方案1】:

您创建的卷与检查输出不匹配。这表明您的卷创建命令失败,或者您正在为卷检查错误的主机。使用当前版本的 docker,预期的输出是:

$ docker volume create --driver local --opt type=nfs \
         --opt o=addr=10.10.10.10,rw --opt device=:/path/to/dir nfs_test

$ docker volume inspect nfs_test                                       
[
    {
        "CreatedAt": "2018-02-18T12:10:03-05:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/home/var-docker/volumes/nfs_test/_data",
        "Name": "nfs_test",
        "Options": {
            "device": ":/path/to/dir",
            "o": "addr=10.10.10.10,rw",
            "type": "nfs"
        },
        "Scope": "local"
    }
]

您生成的输出与不带任何选项创建的本地卷相匹配:

$ docker volume create foo

$ docker volume inspect foo
[
    {
        "CreatedAt": "2018-02-18T12:10:51-05:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/home/var-docker/volumes/foo/_data",
        "Name": "foo",
        "Options": {},
        "Scope": "local"
    }
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2019-06-03
    相关资源
    最近更新 更多