RabbitMQ and Docker

Do you want to deploy RabbitMQ as micro services in multiple virtual machines? Do you want the freedom to launch a RabbitMQ Docker container in any cloud, any infrastructure? Then my friend, you’re in the right place. Read on to find out how.

In Cloud Application Manager, you can deploy a RabbitMQ Docker container out of a box.

RabbitMQ, as you may already know, is an open source message queuing system based on the AMQP standard. RabbitMQ allows application components and services to talk to each other over a variety of protocols. As we shared before, you can configure RabbitMQ as a cluster or as a federation to queue and route messages.

In this post, I’m going to show you how I define and deploy a RabbitMQ Docker container using Cloud Application Manager.

Defining a RabbitMQ Docker Container

  1. On the Boxes page in Cloud Application Manager, I select a pre-defined Docker RabbitMQ box. To get this box, contact me.

    Select RabbitMQ Docker Box

  2. In the Docker box, I edit the Dockerfile to customize it. To deploy the RabbitMQ container, in the Dockerfile, I configure the upstart command to not start RabbitMQ after installing. I add instructions to install RabbitMQ, and define an endpoint to start the RabbitMQ server. I expose some ports to access RabbitMQ components.

    Edit RabbitMQ Dockerfile

  3. Since I need files like a RabbitMQ public key and an upstart policy to install the messaging server in a container, I add those as file variables to the box. Then I use the ADD Docker instruction to store them in the container.

    Add Other Files

Launching a RabbitMQ Docker Container

I’m all set here, so I click Deploy. In a deployment profile, I pick the options that create the virtual machine to host the container. These include the cloud provider, datacenter, number of instances, network, firewall rules, and RabbitMQ server ports. After I save the profile, I deploy the container.

Deployment Profile

As you’ll see, Cloud Application Manager starts deploying the Docker container in a virtual machine in the cloud provider I select. That’s pretty much it! You now have your own RabbitMQ Docker container alive within minutes.

VM Instance Deployed

Testing RabbitMQ in the Docker Container

To make sure that the RabbitMQ server is up and ready, I go to the instance page and from the Docker instance Endpoints tab, I use the expose_15672 endpoint to access the RabbitMQ management dashboard like this:

http://<ENDPOINT_IP>:15672

Optionally, I can SSH into the instance and type $ docker ps that outputs a list of running RabbitMQ containers.

Testing

Want to Learn More About Cloud Application Manager and ElasticKube?

Cloud Application Manager is a powerful, scalable platform for deploying applications into production across any cloud infrastructure – private, public or hosted. It provides interactive visualization to automate application provisioning, including configuration, deployment, scaling, updating and migration of applications in real-time. Offering two approaches to cloud orchestration — Cloud Application Manager and ElasticKube — enterprise IT and developers alike can benefit from multi-cloud flexibility.

Explore ElasticKube by visiting GitHub (curl -s https://elastickube.com | bash).

Visit the Cloud Application Manager product page to learn more.