Why Docker?

I recently came across two new interesting technologies. Docker and Chatbots. One, of them Docker, was a means to get to Oracle Intelligent Bots, but that is for another day. This post is about Docker. Probably, like many,  you have heard and read about Docker but never had the need to use it. The need came when I was handed a Docker image, though first lesson – it is called a container – that had within it all I needed to run an Oracle Intelligent Bots service. I had no idea what was in the build of supporting technologies and I did not need to know.

Previously, when a new Oracle technology arrived you might be lucky and get an Oracle VirtualBox image and can fire the environment up fairly quickly. VirtualBox, like other virtual environments, runs an operating system within the virtual image on top of another operating system. Yes, pretty flexible but can bring a machine to its knees.

Docker does not require another operating system within the image which allows for savings in machine consumption. I heard a good comparison saying that Docker is like a hotel room whereas a Virtual Machine is like a house. You can move hotel room very quickly.

A comparison diagram from htpcbeginner.com:

 

docker vs virtual machine

Docker and Virtual machine articles describe how they are designed to do different things. For me, they are being asked to do the same thing – quickly create an environment for testing and investigation without wasting significant time setting up a complex architecture.

The Oracle Intelligent Bot Service is part of Oracle Mobile Cloud Service (MCS). A common problem for investigators and early adopters is getting access to the software. In days of old, downloadable early versions are posted on otn.oracle.com and we can all download and post opinions and lessons learnt. With the Oracle Cloud, even as an Oracle Partner, getting access to the software can be difficult. Non Oracle partners are now being ‘encouraged’ to register for an Oracle Cloud service and stump up $300, even if you are just investigating.  Not quite the friendly Oracle developer approach we are used to. However, Docker maybe changing this as a complete Cloud container is made available to developers, as was the case for very early Oracle Intelligent Bot environment.  hoping this trend will continue.

The more standard, downloadable Oracle software, such as the database and weblogic are now available at the Docker store. (You will need a free account).  This makes setup and pull down of environments very quick and easy. So how do you do that?

Installing Docker and Running a Container

Download Docker and install. I am using teh community edition, yet to take the leap to the Enterprise (paid) Edition. The CE edition can be found here

After download and install I also install a Docker Toolbox to make life easier with a GUI front end – Kitematic does the job. Again download and install.

It maybe an age thing but I expect when you click on an icon to start an application it would at least do ‘something’! More software seems to start hidden processes and asks you to use the taskbar running processes small icons to access your application. When did this trend start? Anyway, a small whale appeared at the top of my mac screen with a dropdown menu – obvious really..

docker menu

After install and a download of the required docker containers I used the Docker command line tool to install and startup the Docker contaners

for i in `ls ../0.4/*.tar`

do

  docker load <$i

done

./bots.sh createInfra

./bots.sh startServices

./bots.sh createSamples

./bots.sh populateTenant

With the containers installed it was simply a case of running :

 

./bots.sh startInfra

starting the security service via a click start on teh kitematic interface and then running

./bots.sh startServices

Note that some patience is required – my Mac is getting old and took a few minutes to complete each step. However, once running the performance was impressive. I know the Oracle stack underneath the Intelligent Bot is not trivial. But the joy is that I do not need to know the stack, just the application functionality.

localhost:8080/botsui/bot shows:

oracle chatbot

More on chatbots to come.