由于本地计算机上的空间限制,我需要确保docker容器将其数据存储在外部硬盘驱动器上。
我正在使用的docker项目有一个docker compose文件,它指定了许多卷,如下所示:
version: "2"
volumes:
pgdata:
cache:
services:
postgres:
image: "openmaptiles/postgis:${TOOLS_VERSION}"
volumes:
- pgdata:/var/lib/postgresql/data
这些卷最终存在于我的本地计算机上。我想将其位置更改为外部驱动器上的某个位置,例如/ Volumes / ExternalDrive / docker /
我该怎么办?
我已经阅读了有关卷和docker-compose的docker文档,但找不到指定卷应存在的路径的方法。
如果有人能指出道路,我将不胜感激。
您可以使用CLI帮助探索和测试与卷相关的更多功能,然后转置进行撰写。
docker volume create --help
https://docs.docker.com/engine/reference/commandline/volume_create/
请注意,下面的示例可能在Windows上不起作用,因此Windows上的内置本地驱动程序不支持任何选项,但是如果您在Linux上运行docker,则下面的compose文件可以完成此工作:
version: "2"
volumes:
pgdata:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/path/to/the/external/storage'
cache:
services:
postgres:
image: "openmaptiles/postgis:${TOOLS_VERSION}"
volumes:
- pgdata:/var/lib/postgresql/data
您可能还考虑更改docker启动选项,以将其数据存储在您选择的位置。这是一个指南:https : //linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another-directory-on-ubuntu-debian-linux
另外,如果您更愿意尝试在OS而非docker上解决此问题,则可以尝试在文件系统级别使用一些技巧,以在/ var / lib / docker / volumes /中创建符号链接,以指向您的外部存储设备,但要小心并备份所有内容。我个人从未尝试过这样做,但是我认为它对于docker存储驱动程序应该是透明的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句