我有一个本地维护的Docker镜像,由于某种原因,它没有在容器中安装本地数据卷。
docker run -d -v /mnt/melissadata:/usr/local/tomcat/appconf -p 7070:7070 -p 80:8080 --restart on-failure:3 --name addrgeo imagename
在我的本地数据卷上,我有许多服务需要的文件,但它无法找到它们。
我知道音量已经安装。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdi 202:128 0 10G 0 disk /mnt/melissadata
看来Docker容器可以看到音量......
$ docker inspect
...
"Mounts": [
{
"Source": "/mnt/melissadata",
"Destination": "/usr/local/tomcat/appconf",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
findmnt
返回:
$ sudo findmnt -o TARGET,PROPAGATION /mnt/melissadata
TARGET PROPAGATION
/mnt/melissadata private
有什么想法吗?
答案 0 :(得分:0)
之所以发生这种情况,是因为Docker守护程序使用devicemapper对devicemapper来支持Docker的图层存储。如果在Docker守护程序启动后安装了卷,那么Docker不知道它存在。重启Docker守护进程会修复它。
sudo service docker restart