如何在Docker Compose中配置命名卷至文件所在路径
如何在docker-compose指定位置创建自定义命名卷
要让Docker命名卷存储在docker-compose文件所在的挂载驱动器上,而非默认的/var/lib/docker/volumes,可以通过自定义local驱动卷的方式实现,具体配置如下:
1. 目录准备(可选但推荐)
先在docker-compose所在目录下创建存储卷的目标文件夹,避免Docker误创建为文件:
mkdir -p ./docker-volumes/my-project
2. docker-compose.yml配置示例
在你的docker-compose文件中,定义带有自定义存储路径的命名卷:
version: '3.8' # 定义自定义命名卷 volumes: my_project_volume: driver: local driver_opts: type: 'none' o: 'bind' # 相对路径,指向docker-compose所在目录下的指定文件夹 device: './docker-volumes/my-project' services: # 替换为你的实际服务配置 your_service: image: your-image:tag # 将自定义卷挂载到容器内的目标路径 volumes: - my_project_volume:/container/target/path
关键配置说明
driver: local:使用Docker本地卷驱动,是自定义路径的基础driver_opts参数:type: 'none'+o: 'bind':将主机目录绑定为命名卷,实现自定义存储位置device:指定卷在主机上的存储路径,这里用相对路径会自动基于docker-compose所在目录解析,也可以写绝对路径(比如/mnt/mounted-drive/docker-volumes/my-project,根据你的挂载驱动器路径调整)
注意事项
- 若未提前创建
device指定的目录,Docker可能会创建一个普通文件而非文件夹,导致挂载失败,建议手动创建目录 - 需确保容器内的运行用户对该主机目录有读写权限,可通过
chown调整主机目录权限,或在容器配置中指定用户
内容的提问来源于stack exchange,提问作者Mykhaylo Petyakh
相关产品推荐
相关产品推荐

