Windows系统下Docker Volume本地路径查询及命名前缀疑问
Docker Compose命名卷常见问题解答
一、Windows上命名卷的实际存储路径
Docker在Windows上的存储位置取决于你使用的后端(WSL2或Hyper-V),分两种情况:
- WSL2后端:
这是目前推荐的后端,命名卷实际存在WSL2的虚拟文件系统里。你可以通过Windows文件资源管理器直接访问:
也可以进入WSL终端,访问Linux格式的路径:\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\docker_postgres\_data
另外执行/var/lib/docker/volumes/docker_postgres/_datadocker volume inspect docker_postgres,输出里的Mountpoint字段会显示WSL内部的路径,把它转换成\\wsl$开头的格式就能在Windows中打开。 - Hyper-V后端:
这种后端下,卷存储在Hyper-V虚拟机的虚拟硬盘中,无法直接通过Windows文件系统访问。如果需要查看或修改内容,可以用docker cp命令在容器和本地之间传输文件,或者通过容器内的终端操作。
二、卷名前缀为docker_的原因
Docker Compose默认会给所有资源(卷、网络、容器)加上项目名称作为前缀,而项目名称默认是你的docker-compose.yml所在目录的名称。
如果你的compose文件放在名为docker的文件夹里,Compose就会自动给卷名加上docker_前缀,所以你定义的postgres卷就变成了docker_postgres。
想要自定义前缀的话,有两种方法:
- 在
docker-compose.yml顶部添加name字段指定项目名:
这样卷名就会变成name: my_project services: postgres: # ... 其他配置 volumes: - postgres:/var/lib/postgresql/data volumes: postgres:my_project_postgres - 启动容器时用
-p参数指定项目名:docker-compose -p my_project up -d
内容的提问来源于stack exchange,提问作者Luk
相关产品推荐
相关产品推荐

