Search code examples
dockervagrantboot2docker

Vagrant and docker Protocol error mounting directory windows 7


I have a custom boot2docker with this configuration attached to the .iso

config.vm.provider "virtualbox" do |v|
 v.customize ['storageattach', :id,  '--storagectl', 'SATA', '--port', 0, '--device', 0, '--type', 'dvddrive', '--medium', File.expand_path("../boot2docker.iso", __FILE__)]
 v.customize ['modifyvm', :id, '--nictype1', 'virtio']
end

  config.vm.network "private_network", ip: "192.168.10.10", id: "default-network", nic_type: "virtio"

My files in the directory

mycompany/
  dockerhost/
    Vagrantfile
  Vagrantfile

The vagrantfile of the docker-host that replaces the above.

## This is required with the plugin winnfsd
 config.vm.network "private_network", type: "dhcp"
 config.vm.synced_folder "../", "/vagrant", type: "nfs"

When I start up the dockerhost with vagrant up it works well and the NFS is setup correctly, but when I start a service container vagrant up myservice

shows the error

==> myservice: Docker host is required. One will be created if necessary...
myservice: Docker host VM is already ready.
==> myservice: Syncing folders to the host VM...
dockerhost: Mounting shared folders...
dockerhost: /var/lib/docker/docker_1472079332_51007 => C:/Users/myuser/Desktop/mycompany
Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attemped was:

set -e
mount -t vboxsf -o uid=`id -u docker`,gid=`getent group docker | cut -d: -f3` b5973a5087 /var/lib/docker/docker_1472079332_51007 mount -t vboxsf -o uid=`id -u docker`,gid=`id -g docker` b5973a5087 /var/lib/docker/docker_1472079332_51007 
The error output from the command was:

mount: mounting b5973a5087 on /var/lib/docker/docker_1472079332_51007 failed: Protocol error

It looks like Vagrant mount another volumen when starts a container.

Any idea about how to fix it? or why vagrant mounts another for my?

Tks


Solution

  • Vagrant and VirtualBox version incompatibility problems

    This fix my problem:

    Vagrant 1.8.5 should be compatible with the latest VirtualBox 5.1.2 release, however VirtualBox Guest Additions version we currently have is 5.0.20 and the latest boot2docker release is at 5.0.24. Both will most likely have issues with VirtualBox 5.1.2.

    So for now avoid VirtualBox 5.1.x and stick with:

    Vagrant 1.7.4 - 1.8.4 VirtualBox 5.0.x

    Reference: https://github.com/blinkreaction/boot2docker-vagrant/issues/83