我已经在多用户环境中设置了 Docker,其守护进程设置如下
{
"userns-remap": "default",
"data-root": "/data/docker"
}
其中/dev/sda1/
映射到/data
如下:
/dev/sda1 /data ext4 rw,relatime,quota,usrquota,grpquota,prjquota 0 0
我添加了配额选项以启用对 Docker 卷的约束设置,并使用以下命令定义了一个新卷:
docker volume create --driver local --opt type=volume --opt device=/dev/sda1 --opt size=750G vitis
docker volume inspect vitis
打印以下信息:
[
{
"CreatedAt": "2023-03-25T23:01:23-07:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/data/docker/1214112.1214112/volumes/vitis/_data",
"Name": "vitis",
"Options": {
"device": "/dev/sda1",
"size": "750G",
"type": "volume"
},
"Scope": "local"
}
]
当我尝试使用以下命令运行新容器时,收到与安装卷相关的错误。
docker run -p 6080:80 -p 5900:5900 -e RESOLUTION=2560x1440 --name $(whoami) -v /dev/shm:/dev/shm -v vitis:/vitis_projects vitis
docker: Error response from daemon: error while mounting volume '/data/docker/1214112.1214112/volumes/vitis/_data': failed to mount local volume: mount /dev/sda1:/data/docker/1214112.1214112/volumes/vitis/_data: no such device.
ERRO[0000] error waiting for container: context canceled
您能帮助我找出问题的根源并解决它吗?
答案1
这通常会导致/dev/sda1
两者同时安装/data
,并且/data/docker/.../_data
如果它能起作用的话。
docker volume create vitis
一旦守护进程正确配置并且设备安装在 上/data
,一个简单的就足够了,这显然不是您想要的。
编辑:添加--opt size=750G
将创建一个卷,但实际上不会执行任何操作(size
据我所知,这是一个仅适用于 tmpfs 的通用选项)。如果您想设置配额,则需要单独设置配额。