|The Docker Way To Development|
|Written by Ian Elliot|
|Monday, 29 September 2014|
Docker is the new way to distribute apps and entire systems in the cloud, on VMs and physical hardware. Now you can set up a development environment with a single command courtesy of a set of new Docker containers.
Docker is a container system that allows you to package up software so that it has all its dependencies and an isolated operating environment. A Docker container can be installed in an existing system with a single command and it operates in isolation as a self contained sub-system. The advantages are that installation is trivial and there is no chance of interactions causing the whole thing to fail. It gives you all the advantages of distributing software in its own VM but without the waste of duplicated resources.
Now you can bring the simplicity of containers to your software development. Docker Hub has just announced a set of official containers for common language stacks. The containers are in the Docker Hub Registry and they are curated and maintained to keep them up-to-date and safe to use.
At the moment there are Official Repos for c/c++(gcc), clojure, go, hy, java, node, perl, php, python, rails and plain ruby. There are also different version of each language stack which should help with testing or legacy code.
To run you code, assuming you have Docker installed, all you have to do is use a single command. For example for Java:
which adds the current directory and runs the Java compiler to produce myapp.class that can then be run in the same way.
As well as being language environments enabling you to run your code the containers can be used to distribute the code. Each one makes use of the Onbuild instruction which can be used to integrate your code into the container so that you can distribute it as a finish app in a container without having to rebuild the container. This separates the container from your code an makes it very easy to get completely hooked on the Docker way of doing things.
Once you have your application in a container it will run on just about any OS you care to name. Including Windows only here the use of an emulator slightly spoils the deal.
Docker Hub is also looking for enthusiastic people to create and maintain official repros of any languages missing from the current list. If you are interested in making your favourite language easier to use then read the guidelines for getting started and Dockerfile best practices to get some idea of what might be involved.
The only negative about the Dockerization of languages and apps is that it might encourage sloppy programming. By being able to encapsulate a working system you don't have to worry that your code is playing nice with standard code and that it is robust against changes in its environment. Of course these are the advantages of Dockerization too!
To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin, or sign up for our weekly newsletter.
or email your comment to: email@example.com
|Last Updated ( Monday, 27 October 2014 )|