我需要使用docker-compose挂载磁盘。
目前,我可以使用docker service create
通过这种方式进行组装:
docker service create -d \
--name my-service \
-p 8888:80 \
--mount='type=volume,dst=/usr/local/apache2/htdocs,volume-driver=local,volume-opt=type=xfs,volume-opt=device=/dev/sdd' \
httpd
我的docker-compose.yml
看起来像这样:
version: '3.8'
services:
my-service:
image: httpd
ports:
- '80:80'
volumes:
- type: volume
source: my-vol
target: /usr/local/apache2/htdocs
volumes:
my-vol:
driver: local
driver_opts:
type: xfs
o: bind
device: '/dev/sdd'
使用docker-compose up
上传服务时收到错误消息:
"failed to mount local volume: mount /dev/sdd:/var/lib/docker/volumes/apache_my-vol/_data, flags: 0x1000: not a directory"
如何配置docker-compose.yml
使其能够装入磁盘?
*对不起,我的英语不好。
答案 0 :(得分:1)
o:
行与您传递给普通Linux mount (8)命令的选项相匹配。 o: bind
手动创建一个 bind挂载,该文件将文件系统的一部分附加到其他位置;这就是Docker绑定安装系统背后的机制。此处发生变化的重要一点是,它实际上将device:
解释为要重新安装的(主机系统)目录,而不是设备。
由于您尝试挂载物理设备,因此不需要o: bind
选项。如果删除该选项,则device:
将被解释为设备名称,并且可以挂载磁盘。