我需要为 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
任何想法?
我找到了解决方案:
我必须安装本地持久插件。
我必须将要创建的卷安装到安装点,如下所示:
检查我是否得到了我的预期:
结果:
这就是我要找的。
如果您不想在 docker 上安装任何插件,我建议为您的卷创建一个符号链接:
现在可以像往常一样随意使用您的音量(所有数据都随心所欲地输入
/mnt
)我不认为使用
local-persist
驱动程序是要走的路。它已经有一段时间没有更新了。您可以使用 docker mount 将本地(主机)目录挂载到 docker 容器中。运行以下命令会创建一个新容器,其挂载目录映射到我的桌面。
您现在可以
mnt
在容器的根目录中看到一个文件夹。bin dev etc home mnt proc root sys tmp usr var
在容器中创建一个新文件
touch /mnt/extra-addons/test.txt
在我的主机上创建一个 test.txt 文件。在指定的路径。现在这是一个双向读/写共享文件夹。多个容器可以挂载同一个文件夹。一旦你关闭你的容器,它就会持续存在。