Docker and IBM Domino (part 2)

Domno on Docker part 2.png

So how do we get started now that we've been tempted by the sales pitch?

Install Docker

First off, if you have not already, go and get Docker from the Docker website. https://www.docker.com/community-edition#/download

Test Docker

Once you have it installed, go to a command line for your platform and try the following.

docker run hello-world

You should get a response something like this.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Already exists 
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/
For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

Yay! It works.

Now you can do something crazy, like download the whole of latest CentOS image with this command.

docker pull centos

That will save us about 10-30 seconds later on. ;o)

So we know that we have Docker running and that we can get to the Internet with Docker, pull and store images and run them as containers. That wasn't so hard. Was it?

Domino in Docker

Let's start thinking about how this will work with Domino. Most people that have done this already have gone down a route that looks a lot like partitioned servers on a single machine. That's the closest analogy I can come up with, in the Domino world. The Domino server code is in one place and the data would be stored in a separate disk volume. You can have multiple volumes that could be for the same container of Domino or they could be for different servers/customers.

First, we will need the base version of Domino 9.0.1 for 64 bit Linux. This is available from the IBM download sources with part number (CIQ7ZEN)

Second, you want to get Feature/Fix Pack 10 (CNQ2HEN) (https://www.ibm.com/support/fixcentral/swg/selectFixes?product=ibm%2FLotus%2FLotus+Domino&fixids=DominoServer_901FP10_Linux64&function=fixId&parent=ibm/Lotus)

Just place them in a directory that you can get to. For my machine (Mac) I have created a directory called 'docker' from my user directory. Under that, I have two subdirectories; "dom" and "dom_on_docker"

"dom" contains the server code and FixPack that we downloaded, still compressed.
"dom_on_docker" has the scripts in it that I downloaded from Ulrich Krause's blog post about this very subject.

Whilst you can download Ulrich's scripts I would recommend you take my updated scripts.
a, Because I have updated them to work with FixPack 10, and
b, They also don't rely on you having the code on a web server, which I don't.
My scripts can be downloaded from here --> TimsterC Scripts

In the next blog post we'll go through the script and explain the command you need to run it in Docker. 

Buy me a coffeeBuy me a coffee