安装Docker

时间:2015-07-24 17:25:54

标签: docker vagrant virtual-machine virtualbox

我在我的流浪汉中遇到了一个奇怪的错误。所以我使用VirtualBox创建了一个新的ubuntu / trusty64虚拟机(如果有人关心的话,在OS X上)。

一切都很好......

然后我根据instructions安装了Docker,基本上涉及运行

wget -qO- https://get.docker.com/ | sh

这也很好。

然后我去重启VM,退出ssh shell,然后运行vagrant reload,我收到此错误消息。

Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant

The error output from the last command was:

stdin: is not a tty
/sbin/mount.vboxsf: mounting failed with the error: No such device

有什么想法吗?

1 个答案:

答案 0 :(得分:13)

我遇到了类似的问题。安装时看起来像Docker(以及可能的其他工具)将更新Ubuntu/Trusty64来宾中的内核版本。由于Ubuntu/Trusty64中预装的VBox GuestAdditions是专门针对原始内核版本构建的,因此Guest Additions将在下一个vagrant upvagrant reload中停止工作。 Docker安装的新内核启动。此时,Vagrant不再能够自动挂载/vagrant文件夹(或任何已同步的文件夹),因为Guest Additions是针对不同的内核构建的。

要让它们再次运行,您必须针对Docker安装的新内核版本重建GuestAdditions。

幸运的是,Vagrant中有一个名为vagrant-vbguest的插件,当插件检测到需要重建时,它会负责自动重建Guest Additions(例如,当guest虚拟机中的内核发生变化时,或者你在主机中升级了VirtualBox版本

所以在我的情况下,解决它的简单方法是:

  • 在主持人身上:$ vagrant plugin install vagrant-vbguest
  • 访客:$ sudo apt-get install linux-headers-$(uname -r)
  • 在主持人身上:$ vagrant reload

感谢vagrant-vbguest插件,新的VBox GuestAdditions将针对新版本的内核自动重建(您将在上面的第二步中为其下载所需的标头)。

一旦GuestAdditions恢复状态,同步文件夹应该再次运行,/vagrant的映射应该成功。

试一试。