我设置一个像这样的mysql容器:
docker run -v / srv / information-db:/ var / lib / mysql tutum / mysql / bin / bash -c“/ usr / bin / mysql_install_db”
现在,当主机上的/ srv上没有安装任何内容时,这种方法有效,但是当我安装驱动器时,docker似乎写入底层文件系统(/),例如:
/]# ls -l /srv
total 0
/]# mount /dev/xvdc1 /srv
/]# mount
...
/dev/xvdc1 on /srv type ext4 (rw,relatime,seclabel,data=ordered)
/]# docker run -v /srv/information-db:/var/lib/mysql tutum/mysql /bin/bash -c "/usr/bin/mysql_install_db"
/]# ls -l /srv
total 16
drwx------. 2 root root 16384 Apr 22 18:05 lost+found
/]# umount /dev/xvdc1
/]# ls -l /srv
total 4
drwxr-xr-x. 4 102 root 4096 Apr 22 18:24 information-db
有人看过这种行为/有解决方案吗? 干杯
答案 0 :(得分:1)
我已经看过类似的东西了。尝试在mount事件之前和之后对主机和容器内部执行stat -c %i
检查(以获取目标dirs的inode值)。我猜他们在安装外部设备时因某种原因而不匹配。