gpt4 book ai didi

docker 卷自定义挂载点

转载 作者:IT老高 更新时间:2023-10-28 12:44:47 27 4
gpt4 key购买 nike

我是 Docker 新手,我在玩 docker volume。我想指定 docker volume 存储数据的位置。就像我们在执行 docker run 时提供 -v 选项一样。 例如:-v/somefolder/:/var/somefolder

我们如何在创建 docker volume 时设置自定义 Mountpoint。我在文档上没有找到任何选项。

当我检查音量时

[                                                                                        
{
"Name": "sampleproject_mysql_data",
"Driver": "local",
"Mountpoint": "/mnt/sda1/var/lib/docker/volumes/sampleproject_mysql_data/_data",
"Labels": null,
"Scope": "local"
}
]

我得到了类似上面的东西。

有没有办法可以设置自定义挂载点。通过 docker volume 命令或通过 docker-compose.yml?

最佳答案

如果您需要一个指向主机文件系统位置的命名卷(这有点重新发明轮子,因为您可以进行主机挂载,但似乎有很多人要求它),那就是 local persist filesystem driver .这包含在 Docker 的 list of plugins 中。


更新:也可以使用默认本地卷驱动程序将命名卷绑定(bind)到主机上的任何目录。这允许您利用主机卷中缺少的命名卷的自动初始化,但有一个缺点,即如果主机目录丢失,docker 不会创建主机目录(而是卷挂载会失败)。以下是创建此命名卷的几种方法:

  # create the volume in advance
$ docker volume create --driver local \
--opt type=none \
--opt device=/home/user/test \
--opt o=bind \
test_vol

# create on the fly with --mount
$ docker run -it --rm \
--mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=none,volume-opt=o=bind,volume-opt=device=/home/user/test \
foo

# inside a docker-compose file
...
test:
...
volumes:
- bind-test:/var/lib/grafana

volumes:
bind-test:
driver: local
driver_opts:
type: none
o: bind
device: /home/user/test
...

关于docker 卷自定义挂载点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39496564/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com