boot2docker-vagrant-box
boot2docker-vagrant-box copied to clipboard
Update to 1.3.1
Hi,
Thanks for providing this. Works great. Wondering if you will be upgrading to support 1.3.1 any time soon.
:+1:, docker is already at 1.4.0.
1.5.0 is out now
Hi,
just checking in to see if either I'm clueless or this problem indeed persists. I'm running vagrant 1.7.2 courtesy of Homebrew.
Vagrant is using the default mitchellh/boot2docker box with version 1.2.0 which has docker version 1.2.0 and API version 1.14 for both client and server. the issue is that Homebrew has installed docker client version 1.18 and API version 1.6.0.
pointing my $DOCKER_HOST at the default vm that vagrant automatically sets up and executing a docker command (e.g. docker ps -a) locally (on my mac) then yields the error
FATA[0000] Error response from daemon: client and server don't have same version (client : 1.18, server: 1.14)
I've tried deleting the box file ~/.vagrant.d/boxes/mitchellh-VAGRANTSLASH-boot2docker, which forces an update, but keep getting the same version (1.2.0).
I really like vagrant and it's tao/zen/etc, but this is a major issue for me, as it renders my local docker cli useless. Is the issue really that the box's version is out of date (which could be fixed by a simple update/push by @mitchellh ?), or am I missing something?
Because this box is always woefully behind, I would recommend that you all just use yungsang/boot2docker, or else get used to building your own up-to-date version of this box by following the Packer instructions in the README.
Vagrant has a built-in Vagrantfile to use mitchellh/boot2docker by default when you use the Docker provider. The docs tell us how to override this (see the "Host VM" section of the page). In short, you just need to add the following to the Vagrantfile in your project:
# Override Vagrant's default Docker host VM that uses mitchellh/boot2docker box
config.vm.provider "docker" do |d|
d.vagrant_vagrantfile = "./dockerhost/Vagrantfile"
end
Then, create ./dockerhost/Vagrantfile (or wherever you wish to put it) by copying the contents of Vagrant's default version, and updating it to your liking:
- Change the box to point to the one you built (or YungSang's if you trust it).
- Bumping the RAM higher than default is a good idea.
- I like to set
vb.namefor VirtualBox to "boot2docker-vagrant" so it's more useful than the annoying "default" invagrant global-statusand the GUI, etc. - YungSang enables NFS on his boot2docker image—if using his box, enable it in the host
Vagrantfileif you wish.
If there's an appropriate place to document these steps in more detail than they're already covered by the provider doc linked above, I'll be happy to whip up a doc PR. Mitchell's a busy guy. I wish he'd find a way to enable some others to keep this box up-to-date since it's a default in Vagrant core (and give some love to vagrant-aws, but don't get me started…).
awesome, thanks @ches for the tips! I agree, having those instructions in Vagrant's docs would be super helpful. Since leaving that comment, I've switched to Docker Machine for all of my docker-related VM/host management needs. Machine has been a wonderful tool for me so far, and I'd suggest it to anyone encountering these issues.
That said, I really do appreciate Vagrant. I use it for all of my non-docker VM management needs, and will be keeping tabs on this so I can switch back once doing so is more practical.
I will also draw attention to Dinghy: https://github.com/codekitchen/dinghy
Built as a derivative of this project with boot2docker. As of this writing it's @ 1.7.0 and is a very easy deploy to get it up and running. Wish I had found that yesterday - would have saved me hours.
Or you can just:
- Clone this repo
- From the
masterbranch, edit thetemplate.jsonfile to leave only the vbox image building - Then build it with
packer - Create a
Vagrantfileusing the image you just build: it will be your docker host - In your app
Vagrantfile, setd.vagrant_vagrantfileto the path of your docker hostVagrantfile
It's not that complicated.