I'm trying to find a solution to build a consistent development environment across different machines: Windows PC, Windows laptop, MacBook …

Recently I learned Docker, the concept attracts me. But finally I found it doesn’t intend to solve my issue by asking a question on SO, it'll be hard and unnatural to use Docker as virtual machine. It’s a container for one application.

But I really like how Docker works:

  1. Use Dockfile to define an image, which make it really easy to rebuild the same image.
  2. Dockerhub, it’s so amazing that so many official docker images are contributed by the Docker community, which makes it really simple to create new image starting from those base images.
  3. It’s very easy to create a new image from a container if I’ve done some changes in it.

In the question I asked, Mark pointed out the new project LXD which is intended to make containerized virtual machines. I looked into their website and searched some online introduction and tutorial, it seems it doesn’t have the above mentioned features, so I’m wondering if there’s some other open source project which meets the requirement?


1 Answer 1


You might consider using Vagrant, which is used often together with VirtualBox, although it supports other solutions as well.

Their motto is:

Create and configure lightweight, reproducible, and portable development environments.

Regarding your requirements:

  • An image can be defined through a file called Vagrantfile
  • There are community-provided Vagrant boxes
  • I am not sure what you mean by the third requirement, but you can base a Vagrant box on an existing one, as far as I understand their documentation

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.