Fig 1.0: Boot2docker compatibility and more
blog.docker.com
blog.docker.com
However, it's perfectly suited to run in production for small to medium sized applications. You can even see a sample "Deploy on git push using fig" that I put together here:
https://github.com/nathanleclaire/laraveldocker
It's fun!
[1] https://github.com/centurylinklabs/fig2coreos
[2] http://www.centurylinklabs.com/building-complex-apps-for-doc...
In fact, I'm amazed at the amount of businesses that don't. Half of what TechCrunch writes about is, in technical terms, Rails CRUD apps. Why would they need more than a single host in the first year?
Gosh dangit. It's about to the point I need a separate tool just to manage all my .ignore files.
Come to think of it, maybe just ln -s will do.
See https://github.com/docker/docker/pull/3452 and follow -up mailing list thread.
In the end it kind of grows on you :)
I've found Github's auto-generated-by-language .gitignore files very useful.
`gi vim,linux,node,grunt,bower > .gitignore`
Super handy.
Getting a new dev onboarded with your whole dockerized stack involves:
- pip install fig
- cd into directory with fig.yml
-'fig up'
Really a great tool. Definitely recommend it. Good intro here: http://www.fig.sh/
The other comments at this level saying Vagrant spins up a full VM are incorrect. Vagrant will spin up boot2docker if it isn't running (which Fig requires as well), and then just execute Docker to run containers. On Linux, Vagrant doesn't spin up a VM at all; it just executes Docker directly.
I'm not here to talk about Fig vs. Vagrant, since I think this thread should be about congratulating Fig to 1.0, but I did want to make sure that some facts aren't incorrect.
Fig is a tool written in Python specifically designed to orchestrate groups of docker containers. It does not require virtualization by default, it talks directly to the Docker API (so you can use it directly on Linux without boot2docker/VirtualBox). It is useful because previously people were writing their own custom little Bash scripts etc. to bootstrap containers for e.g. a PHP app to run app code, a MySQL database, a redis instance and an instance of nginx to serve static files which are all meant to be tied together and work together in a specific way. One of the goals of docker is "one concern per container" so this helps people to use it in the right way and you don't have to, say, restart your database to restart your app (like you would if you crammed them all into one container).
Vagrant is a general purpose tool for automation and management of virtual machines written in Ruby. You specify configuration in Ruby. One of its goals is choice, so it has swappable "drivers" (so that you can use different hypervisors such as VirtualBox, Fusion, and HyperV) and "provisioners" (for installing software etc. when you bootstrap a new VM). I'm afraid I have to plead ignorance on the Docker provisioner, but mitchellh is the creator so I'm sure his input is sound.
See linked page at https://docs.docker.com/installation/mac/
Note VirtualBox is one of the only modules blacklisted by the Linux kernel not for being proprietary (it's Open Source) but because it's terrible.
We agree that VBox is not ideal but it is free and we would like to have other options (Fusion, HyperV) available in the future as well.
For the sake of simplicity and distribution the OSX and Windows installers package boot2docker with Virtualbox.