Interested in “the Docker thing” ?!?

03. October 2015

If you are, like me, interested in Docker, you should have seen last Thursday’s Oracle OpenWorld 2015 Preview event at AMIS (Nieuwegein, The Netherlands). The session by Lucas Jellema “Intro for developers and administrators to environment management with Vagrant, Puppet and Docker” opened quite a few new doors for me. As a Continuous Integration consultant, I’ve already played around with Docker. For example, I’m currently running a container with the application Citrix that enables me to work from home for Liberty Global.

At the moment I am also following the Oracle Middleware 12c training and my “development” machine and environments are running Oracle 12c inside a Docker container and not anymore in a virtual machine. Running GUI application in Docker Container works amazingly well. So you are reading it right, Oracle is also taking part in this “Docker thing”. Let me share some more interesting facts about Docker with you.

Imagine you want to try some new application you found on the Internet or made yourself. You may want to try it out or share a demo with a customer or colleague. Ideally you don’t want to depend on a specific environment. Docker provides you with the possibility to create reusable containers that can be distributed, and are platform independent. The virtualization approach used by Docker is also a lot more lightweight than than the approach used by, for example, VMWare and VirtualBox.

Docker makes the features of the Linux kernel available to everyone via a very friendly API. You can start using some buzzwords like: build, ship, share and run container.  A container is just like a virtual machine, giving you a new way to use the physical resources of a machine in a more efficient way. New software can be made available as part of a container, it runs Linux inside, with its own file system, IP address, etc.

During the demo’s shown last Thursday, the public was very impressed about how easily and quickly a Docker container starts and stops, thanks to it’s lightweightness. You can have a container running from a virtual machine or from your local laptop, running on Linux or Windows (though you do need to install a tool to be able to use Docker in Windows). Using simple command, like “docker run container-name”, a container starts. Furthermore, you can, for example, run different containers using different ports and let them communicate together. They run easily side by side and  the additional resources they will take are minimal. Using the command “docker ps -a” you can ask all the information about the last running container.

How to get it up and running?

You can start from scratch downloading the software you want to use and start building your own image using a Docker file. You can also use an already created image from the Internet. Tools like Vagrant and Puppet can assist you to administrate and configure the creation of the images you chose. Each image consists of a series of layers. When you change a Docker image, a new layer gets built. You can save it, rebuild it and ship it. This is the great strength of Docker.

We could start seeing Docker containers as the proper way to implement a micro services architecture. We can expect Docker to be more and more adopted in the future. If you like to learn more about the Docker virtualization solution for your organization, you can of course contact us.  

Other relevant DevOps content