Docker is an open platform for developing, shipping, and running applications. It can significantly reduce the delay between writing code and running it in production. This is because Docker Containers are lightweight and contain everything needed to run an application within them.

NCache is an extremely fast in-memory distributed cache that also provides Docker images for both Windows Server and Linux. In this blog, I’ll explain how you can configure and use these images so that you may start using NCache ASAP!

NCache Details                                              NCache Docs                                                 NCache Docker Docs

NCache in Docker

Docker Images are self-contained, meaning that these images contain everything required to run the application within them. The user just has to pull these images, create containers, and use them.

This also applies to the NCache Docker Images. This means that by using NCache with Docker, you save yourself the hassle of having to download and install each and everything required by NCache. With Docker, you just need to pull the respective image that you need, make some configuration changes, and you are good to go.

NCache Docker Image Working

Figure 1: A diagram depicting the working of NCache with Docker.

NCache Details                                              NCache Docker Images                                           NCache Docker Docs

Deploying NCache Docker Image

Deploying NCache Docker Image(s) is a pretty straightforward process. In this section, I’ll show you how to configure, deploy, and use the NCache Docker Image in a Linux environment. This process is the same for the NCache Docker Image for Windows just replace the image name where necessary.

Step 1: Configure Network

Firstly, you’ll need to create a custom network in Docker so that you can assign static IP addresses to your containers. This is done to tackle the problem of your containers changing their IP address after you restart them or when the host machine restarts. The following command creates a custom Docker network with an IP range and the name nbrg.

Step 2: Pull Image and Create Containers

After you have configured the network, you need to pull the NCache Docker Image from the Docker Hub repository. Execute the following command to pull this image:

Once you have created a custom Docker network and pulled the NCache Docker Image, you’ll have to create containers that host NCache. The docker run or docker create commands create these containers. The difference between the two is that the former also starts the container after creating it.

Depending on your Docker Container Deployment Scenario, the process of creating and running your containers will vary. In this scenario, your containers and host both are Linux-based.

The following two commands create and start the containers named ncache-ent-server-01 and ncache-ent-server-02 with the custom Docker network nbrg that we created in the previous step. A static IP address is also assigned to each container.

NCache Details                                  NCache Docker Deployment Scenarios                            Port Forwarding in Docker

Step 3: Connect to the Container

You’ll need to connect to the containers that you created to start working with them. The following command connects you to the container (running) named ncache-ent-server-01 and opens a PowerShell instance within it.

Step 4: Activate License

By default, the NCache Docker containers are not activated. So, to use these containers, you’ll either have to register/activate them using a license key (obtained from sales@alachisoft.com) or you’ll have to register them for evaluation by using an evaluation key.

To use the NCache PowerShell cmdlets, you need to import the NCache PowerShell module. The following command imports the NCache PowerShell module inside the container ncache-ent-server-01.

Once you have imported the NCache PowerShell module inside the container ncache-ent-server-01, you can use the NCache PowerShell cmdlets to register NCache. The following command registers NCache using the activation key with the environment set to production and the number of clients set to 4 inside the container ncache-ent-server-01.

If you want to evaluate NCache before purchasing a license for it, you try NCache for a free 60 day trial period by registering NCache for evaluation using an evaluation key. The following command registers NCache for evaluation with the evaluation key inside the container ncache-ent-server-01.

Step 5: Use NCache in Docker

Now that your container has been activated, you can use NCache as you want by executing the supported PowerShell commands and using the NCache Web Manager (explained in a later section). For example, the following command creates a cache named demoClusteredCache with two server nodes (172.19.0.11 and 172.19.0.12) with the topology set to PartitionedOfReplica, inside the container ncache-ent-server-01.

Using the NCache Web Manager

The NCache Web Manager is a very powerful tool that gives a GUI to manage and monitor your caches. Since we configured our NCache Docker containers to be accessible by the host, we can use the NCache Web Manager through the host’s web browser to manipulate our caches. To access the Web Manager of the container ncache-ent-server01, go to http://localhost:8251/ via your host machine’s web browser.

 

NCache Web Manager Docker

Figure 2: NCache Web Manager Interface

NCache Details                                              NCache Web Manager                                             NCache Web Monitor

Connecting a Client Application

Once you have created your NCache containers, activated them, and created your clustered cache(s), you can proceed to connect your client applications to the clustered cache(s). Depending on where your client application is deployed (application can be containerized within the same network as the servers or the application can be present on the host machine, etc.), you may have to make some additional configurations.

Once you have connected your client application to the clustered cache(s), you can reap the benefits of the feature-rich NCache Client-Side API. NCache also provides Dockerfiles to create Docker Images for Windows and Linux. You can modify these DockerFiles as per your liking to create a custom NCache Docker Image and package your application within it.

NCache Details                                              NCache Docker Deployment Scenarios                                        NCache Dockerfile

Conclusion

The Docker Images of NCache save the users time by providing every dependency and configuration of NCache within them. Users no longer have to install each and everything required by NCache just to run it. If you want to use NCache with Docker, you are just a pull away from the vast API, tools, and features provided by NCache. So, what are you waiting for? Use NCache now!

NCache Details                                              Download NCache                                                    Edition Comparison