MarkLogic Docker Container on Windows

by Arthi Ramachandran

In the blog Building a MarkLogic Docker Container, we created a Docker container and installed MarkLogic. Windows remains as one of the heavily-used operating systems for hosting MarkLogic Server. Please check the Marklogic Install Guide for the most current messaging around operating systems for hosting Marklogic Server. We have greatly reduced the ramp up time for using a MarkLogic Docker container on Windows. We will see the how-tos in this blog post.

MarkLogic does not currently officially support Docker containers. Please use discretion when working with these examples.

Obtain a Windows Server 2016 environment

While Docker container support on Windows has existed for over one year, the user experience has been greatly simplified with the release of native container support in Windows Server 2016. Windows 10 Pro for education or enterprise is another host operating system option for Docker on Windows. On Windows 10 Pro, the user had to install and configure Docker For Windows. Windows Server 2016 with native container support was released in September, 2016. We have successfully finished the implementation of bringing that simplified Docker environment on Windows to you. As the saying goes -- there is always room for continuous improvements! We are certainly interested in your feedback to further improve the offering. The following blog post will be useful for anyone interested to know more about the native container support in Windows Server 2016: https://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/

Once Docker is installed, check the Docker version and Docker help to confirm that it is installed properly.

Building a MarkLogic Docker image

The Dockerfile for building ML Docker image is below.

To build the image, you will need to have the .msi file for MarkLogic in same directory that has the Dockerfile. You can download the MarkLogic 8 Windows installer from http://developer.marklogic.com/products.

The following shows the expected result of the above docker build command:

Once the building of the Docker image is completed, you can issue docker images command to check whether the image was created:

If your organization manages a private registry, the image can then be pushed to it using the docker push command:

Please continue to read the blog post for your options on hosting a Docker private registry for Windows images.

Uploading Docker image to registry

As of January 2017, Docker Trusted Registry (private cloud) that is offered by Docker does not support hosting Windows images. Many users have raised this request to Docker support and they have plans to patch DTR to host Windows images. Shipyard is Docker management open source software that gives us the ability to manage Docker resources including containers, images and private registries. Since MarkLogic is a licensed product, it is highly important that we host MarkLogic Docker images on a private cloud to secure access. Here at MarkLogic, we have installed and configured a private Windows registry using Shipyard. Attached is an image that shows a private registry using Shipyard:

Starting a MarkLogic Docker container

First ensure that the docker images command will list the Docker image from which you want to create a container. If you don't have the image pulled locally from a registry, issue the docker pull command.

Once you have pulled a Docker image from the private registry, you can create a MarkLogic container on Windows as follows:

Testing MarkLogic

After the container is started , simply point your browser to http://<container-ip>:8001 to initialize and enjoy all MarkLogic features!

Comments