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 https://download.docker.com/linux/ubuntu/gpg | 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] https://download.docker.com/linux/ubuntu $(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 containerd.io -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 127.0.0.1 --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.