Docker-Machine and OpenNebula

Here at OpenNebula we value Docker a lot, and we believe it’s a wonderful tool for developers, so we want to provide OpenNebula users with the best possible experience when using Docker within OpenNebula.

docker_opennebula

We have a long Docker-related roadmap ahead of us yet, but we are very satisfied with our first PoC. We have succesfully created a new OpenNebula driver for Docker Machine.

From the Docker Machine page:

Docker Machine lets you create Docker hosts on your computer, on cloud providers, and inside your own data center. It automatically creates hosts, installs Docker on them, then configures the docker client to talk to them. A “machine” is the combination of a Docker host and a configured client.

For a more visual representation of how Docker Machine works, with a single Docker client, you can deploy Docker containers in multiple providers:

docker_arch

The integration with OpenNebula is extraordinary simple and easy to use for the users, take a look at this quick demonstration that launches a new Docker Machine using OpenNebula as the backend provider. Notice how it’s completely seamless and transparent to the user:

This allows you to experience the best of both worlds, by using Docker with OpenNebula developers will Docker transparently, but OpenNebula admins will control where these VMs are executed.

Do you want to try it out? Very easy, simply clone this repo:

https://github.com/OpenNebula/machine

And build it:

make build

And you will have your binary in the bin directory.

We are working very hard to include this new driver upstream, so you can use OpenNebula with the official Docker Machine distribution.

However, this is just the tip of the iceberg! our next step is to build flows for OpenNebula OneFlow for the on-demand elastic execution of a Docker cluster management system, use OneFlow to orchestrate images which contain Docker and the cluster manager. We intend to integrate OneFlow both with Docker Swarm and Google Kubernetes.

And finally all of this will happen in parallel while adding support to LXC drivers for OpenNebula.

We will keep you posted with our progress!

3 replies
  1. Andrew Watson
    Andrew Watson says:

    So, this still isn’t merged in to the official repository now 4 months later. Is there a particular holdup?

  2. Jaime Melis
    Jaime Melis says:

    Hi Andrew,

    not at all. We couldn’t merge it in time for 4.14, but it’s in the list for OpenNebula 5.0, so this will happen in the upcoming couple of months.

    We actually have received a contribution that adapts the plugin we developed to the new docker-machine architecture:
    https://github.com/km4rcus/docker-machine-opennebula
    (thanks Marco!)

    We intend to review it and submit it in the short-term, before the next OpenNebula release (5.0).

    Thanks for the interest!

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *