【问题标题】:Mounting container volume from the hosts' drive?从主机的驱动器安装容器卷?
【发布时间】:2015-04-22 17:28:48
【问题描述】:

我像这样设置一个 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

有人看到这种行为/有解决方案吗? 干杯

【问题讨论】:

  • 幸运的是,我能够通过从轨道上删除整个设置来解决这个特殊情况(完全删除 docker,升级内核并安装最新和最好的)。仍然很想知道是否有人对此有想法

标签: mysql docker


【解决方案1】:

我见过类似的东西。尝试在挂载事件之前和之后在主机和容器内部执行stat -c %i 检查(以获取目标目录的 inode 值)。我猜当您安装外部设备时,它们由于某种原因不匹配。

【讨论】:

  • 嘿,谢谢你的回答 :) 我得到了以下结果,但我不确定如何解释它们: 挂载前:容器:(/var/lib/mysql)2228226 主机:(/srv /information-db) 2228226 挂载后: 容器: (/var/lib/mysql) 2228226 主机: (/srv/information-db not present ) [] 注意挂载后主机上不存在目录,只能通过之后卸载它是否出现(如在原始问题中)并返回相同的结果(2228226)
猜你喜欢
  • 2017-06-21
  • 2017-10-21
  • 2019-12-18
  • 2020-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多