我需要创建一个持续量对于 Docker。该卷必须命名extra-addons
并位于/mnt/
.
我运行这个命令:
sudo docker volume create /mnt/extra-addons
我收到此错误消息:
Error response from daemon: create /mnt/extra-addons: "/mnt/extra-addons" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path
请注意,当我简单地运行:时sudo docker volume create extra-addons
,我不会遇到此问题,但是当我使用检查有问题的卷时sudo docker inspect extra-addons
,我发现它位于我不想要的位置:
[
{
"CreatedAt": "2018-04-21T14:40:25+03:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/extra-addons/_data",
"Name": "extra-addons",
"Options": {},
"Scope": "local"
}
]
我的意思是我宁愿看到这样的卷:/mnt/extra-addons
任何想法?
答案1
我找到了解决方案:
我必须安装本地持续插入。
我必须将要创建的卷安装到安装点,如下所示:
sudo docker volume create -d local-persist -o mountpoint=/mnt/ --name=extra-addons
检查我是否得到了我所期望的:
sudo docker volume inspect extra-addons
结果:
[
{
"CreatedAt": "0001-01-01T00:00:00Z",
"Driver": "local-persist",
"Labels": {},
"Mountpoint": "/mnt/",
"Name": "extra-addons",
"Options": {
"mountpoint": "/mnt/"
},
"Scope": "local"
}
]
这就是我正在寻找的。
答案2
如果您不想在 docker 上安装任何插件,我建议为您的卷创建一个符号链接:
$ docker volume create <myVolume>
$ docker volume inspect <myVolume>
[
{
"CreatedAt": "0001-01-01T00:00:00Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/<myVolume>/_data",
"Name": "<myVolume>",
"Options": {},
"Scope": "local"
}
]
$ mkdir /mnt/<myVolume>
# if you already have data in your volume, you should copy it to `/mnt/<myVolume>` now
$ sudo rm -rf /var/lib/docker/volumes/<myVolume>/_data
$ sudo ln -s /mnt/<myVolume> /var/lib/docker/volumes/<myVolume>/_data
现在,您可以像往常一样随意使用您的卷(所有数据都/mnt
按照您的意愿输入)
答案3
我不认为使用local-persist
驱动程序是正确的方法。已经有一段时间没有更新了。您可以使用 docker mount 将本地(主机)目录挂载到 docker 容器中。
运行以下命令会创建一个新容器,其中的安装目录映射到我的桌面。
mkdir extra-addons
docker run -it -v /Users/me/Desktop/extra-addons:/mnt/extra-addons busybox /bin/sh
ls
mnt
您现在可以在容器的根目录中看到一个文件夹。
bin dev etc home mnt proc root sys tmp usr var
在容器中创建新文件
touch /mnt/extra-addons/test.txt
在我的主机上创建一个 test.txt 文件。在指定路径。现在这是一个双向读/写共享文件夹。多个容器可以挂载同一个文件夹。一旦您关闭容器,它就会持续存在。