How to deploy MongoDB as a Docker container


Jack Wallen shows you how to spin up a MongoDB container as a Docker container for your development needs.

MongoDB is an outstanding NoSQL database that offers plenty of features to satisfy the most demanding needs, but I’ve found installing MongoDB to be a bit inconsistent across Linux distributions. MongoDB might install just fine on, say, Ubuntu 20.04, but there’s no guarantee it will start properly. That’s an issue I’ve experienced on several occasions.

SEE: Hiring Kit: Database engineer (TechRepublic Premium)

What do you do when you don’t have time to install and troubleshoot an installation of MongoDB? You could always go the container route. After all, deploying with a container is a much more predictable route. On top of that, it’s considerably easier and you can spin it up on any machine that supports Docker.

That’s a win-win, so if you need to get a MongoDB instance up and running for development purposes, read on.

What you’ll need to deploy MongoDB as a container

The only things you’ll need for this deployment are a machine that supports Docker and a user with sudo permission. I’m going to demonstrate on Ubuntu Server 22.04. Let’s get to it.

How to install Docker Community Edition

In case you don’t already have Docker installed, here is the step to do so on Ubuntu Server. The first thing to do is add the official Docker GPG key with:

curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Next, add the official Docker repository:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Install a few dependencies with:

sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y

Update apt with the command:

sudo apt-get update

Finally, install Docker with:

sudo apt-get install docker-ce docker-ce-cli -y

To finish things up, make sure your user is a member of the docker group with the command:

sudo usermod -aG docker $USER

Log out and log back in so the changes take effect.

How to deploy MongoDB with Docker

Pull the latest Docker image from MongoDB with the command

docker pull mongo:latest

Before we run the deployment command, we need to create a volume for the database so we can retain data should something go awry with the container.

Create the volume with

docker volume create mongodata

Now that our volume is ready, we can deploy it with the command

docker run -d -v mongodata:/data/db --name mymongo --net=host mongo:latest --bind_ip --port 27000

With a container running, you will then need to know how to access it. That’s actually quite simple. The command to access your running MongoDB container would be

docker exec -it mymongo bash

Access the mongoDB console with the command

mongosh localhost:27000

You should find yourself on the MongoDB console, where you can start developing your databases. You can exit the console with the exit command, and then exit the container also with the exit command. You can then return to the MongoDB console with the previous commands whenever it’s time to work with the database again.

For more tutorials from Jack Wallen, subscribe to TechRepublic’s YouTube channel How To Make Tech Work — and remember to like this video.


Source link