在 docker-compose 文件中,我想创建一个命名卷,该卷将以本地驱动器为目标进行测试。对于生产,我们将使用 NFS。
我创建了如下撰写文件,
version: '3.3'
services:
test:
build: .
volumes:
- type: volume
source: data_volume
target: /data
networks:
- network
volumes:
data_volume:
driver: local
driver_opts:
o: bind
type: none
device: c:/data
networks:
network:
driver: overlay
attachable: true
当我运行 docker-compose up 时,出现以下错误:
for test_test_1 Cannot create container for service test: failed to mount local volume:
mount c:/data:/var/lib/docker/volumes/test_data_volume/_data, flags: 0x1000: no such file
or directory
即使出现错误,它仍然会创建命名卷。所以当我检查它时,
{
"CreatedAt": "2019-10-07T09:10:14Z",
"Driver": "local",
"Labels": {
"com.docker.compose.project": "test",
"com.docker.compose.version": "1.24.1",
"com.docker.compose.volume": "data_volume"
},
"Mountpoint": "/var/lib/docker/volumes/test_data_volume/_data",
"Name": "test_data_volume",
"Options": {
"device": "c:/data",
"o": "bind",
"type": "none"
},
"Scope": "local"
}
我仍然不确定为什么 Mountpoint 会瞄准该位置。
我知道我可以在没有命名卷的情况下实现这一目标(我已经做到了),但对于项目的未来,我们肯定需要命名卷。
有什么建议如何实现这一目标吗?