rob*_*sco 5 docker docker-compose
由于本地计算机的空间限制,我需要确保我的 Docker 容器将其数据存储在我的外部硬盘驱动器上。
我正在使用的 docker 项目有一个 docker compose 文件,它指定了多个卷,如下所示:
version: "2"
volumes:
pgdata:
cache:
services:
postgres:
image: "openmaptiles/postgis:${TOOLS_VERSION}"
volumes:
- pgdata:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)
这些卷最终存在于我的本地计算机上。我想将它们的位置更改为我的外部驱动器上的某个位置,例如 /Volumes/ExternalDrive/docker/
我该怎么办?
我已阅读有关卷和docker-compose的 docker 文档,但找不到指定卷应存在的路径的方法。
如果有人能指点迷津,我将不胜感激。
您可以使用 CLI 帮助探索和测试与卷相关的更多功能,然后进行转置以进行组合。
docker volume create --help
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
您还可以考虑更改 docker 启动选项以将其数据存储在您选择的位置。这是指南:https://linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another-directory-on-ubuntu-debian-linux
或者,如果您更愿意尝试在操作系统而不是 docker 中解决此问题,您可以在文件系统级别尝试一些技巧,在 /var/lib/docker/volumes/ 处创建一个符号链接以指向您的外部存储,但要小心并备份所有内容。我个人从未尝试过这个,但我相信它对于 docker 存储驱动程序应该是透明的。
| 归档时间: |
|
| 查看次数: |
3405 次 |
| 最近记录: |