Docker is an open source platform which makes life easy for system developers and sysadmins to build, ship and run distributed applications. Unlike Virtual Machines (VMs) Docker containers allows you to package an application with all of its dependies into a standardized unit for software development.
To create an image of the loklak server, the first thing you need is to run the docker daemon process. This then boots up a blank docker instance (called a
default image) such that the images could be stored. To run loklak in a container, we first need to create a new image for loklak server. This includes the base operating system, the required updates for that operating system as well as the build instructions for running the application. To run the loklak server we need to clone the loklakserver from `loklak/loklakserver
and then build and compile usingant`.
Once the docker daemon's default image has booted, Create an new directory called
cd into that directory. Inside that create a directory
loklak so that you could store the
loklak image that you would create. To do this you need to create a Dockerfile mentioning the operating system and the different instructions that need to be executed.
This fetches the latest ubuntu image and provides a non-interactive Debian front end. Docker files are executed step by step. So in the above docker file for loklak, the machine image is first pulled over and then the operting system image us updated and the distribution upgraded. Once this is done the dockerfile then runs
RUN apt-get install -y git ant openjdk-8-jdk to install ant, git and java8 JDK. Once this is complete, the repository for the loklak server is closed and the container opens ports 80 and 443 to run it on HTTP and HTTPS port. The
sed commands find and replace the settings for the HTTP port and HTTPS port on the configuration file of the loklak server. Once this is cloned, we run
ant and execute
bin/start.sh to start the loklak server.
Since now we understand how the docker file runs, lets find out how the docker is actually executed.
docker images to see the list of images that you have.
Now create the loklak image by doing
docker build -t loklak . which uses the
Dockerfile in the current directory to build the image in that directory.
The command takes several seconds to run and reports its outcome. During this process, it fetches each of the image layers and puts these image layers together to create your docker container. Once it's installed, you can run it by doing
docker run loklak. This has successfully created your image and it's ready to push it to dockerhub after creating a namespace and renaming the image as
useraccountname/loklak and then pushing to docker hub.
To push these to the IBM Bluemix cloud, you need to have
cloudfoundry command line tools
cf. Then install the plugin for containers
cf install-plugin https://static-ice.ng.bluemix.net/ibm-containers-linux_x64
Once this is installed, connect to the IBM Bluemix cloud under a namespace and pull the required image you pushed to github as
cf ic cpi username/loklak loklak which copies the image you pushed to dockerhub to the IBM Containers and run the container.
Containers make life really simple for devops and to create and deploy instantly as well as scale on demand.