gpt4 book ai didi

postgresql 持久化数据 : which is better named volume or bind mount

转载 作者:行者123 更新时间:2023-11-29 13:41:11 25 4
gpt4 key购买 nike

选项 1:(命名容器。卷由其名称标识。它将其数据存储在/var/lib/docker/volumes/nameofthevolume 中)

# create the volume in advance
$ docker volume create test_vol

选项:2(这里卷的名称bind-test并不重要,重要的是它挂载到哪个本地路径/home/user/test,是持久的。而不是 /var/lib/docker/volume/somevolumename /home/user/somedatafolder 更具可读性。缺点:我们必须确保 /home/user/somedatafolder 存在。)

 # inside a docker-compose file
...
volumes:
bind-test:
driver: local
driver_opts:
type: none
o: bind
device: /home/user/test

or:

version: '3'
services:
myservice:
volumes:
- ./path:/volume/path

绑定(bind)挂载的缺点是它将容器管理的文件与容器中的 uid/gid 放置在主机上其他用户可能使用的路径中,通常在主机上具有不同的 uid/gid .结果是主机上或容器内部的权限问题。您需要在两者之间对齐 uid/gid 以避免这种情况。

最佳答案

归根结底,绑定(bind)挂载和 Docker 命名卷之间没有太大区别。

我倾向于将来自 Docker 服务的持久数据保存在 Docker 卷中。然后,您可以使用 docker system df -v 等工具来检查您的应用程序使用的内容。

关于导出数据,可以使用docker cp

docker cp someContainer:/somedir/ .

关于postgresql 持久化数据 : which is better named volume or bind mount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55228517/

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