In this post I’m going to provide a simple example of how MongoDB with adminMongo can be run on your local machine with minimum effort. This can be useful in development scenarios or simply if you want to test something.
What is MongoDB?
MongoDB is a NoSQL database aimed for both big and small applications designed with scalability in mind. Instead of saving tabular data, MongoDB stores data as collections and documents.
What is adminMongo?
adminMongo is simply a web interface for data query, save or delete. There are a lot of Mongo administration tools out there but I chose this one for its simplicity.
Building adminMongo with Docker
Let’s go straight to business. Before running both of them with docker compose, we need to build a new image based on original adminMongo image that changes the container configuration. We need this because:
- adminMongo listens to localhost by default and we need to make it listen to all interfaces, so we will make it listen to 0.0.0.0
- We want to password-protect the access to web interface
This is the app.config file for configuring MongoAdmin:
{
"app": {
"host": "0.0.0.0",
"port": 1234,
"password": "1q2w3e",
"locale": "en"
}
}
And the Docker file is very simple:
FROM mrvautin/adminmongo
COPY app.json /app/user/config
This is enough to build our adminMongo service for now.
Writing the compose file
The next step is to write a compose file that will bring up the services. The configuration file will create a MongoDB and adminMongo container and will expose port 1234 to our system.
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-admin:
build:
context: ./mongo-admin
restart: always
ports:
- 1234:1234
environment:
DB_USERNAME: root
DB_PASSWORD: example
Running the whole setup
It’s now time to run the compose file. If you run ‘docker compose up’ in the folder where the compose file is located, you should be able to see the following output:
mongo-admin_1 | adminMongo listening on host: http://0.0.0.0:1234/dbApp
mongo_1 | MongoDB init process complete; ready for start up.
You can now go to http://localhost:1234/dbApp/app/connection_list to define a connection. Give a name to the connection and use the following connection string: ‘mongodb://root:example@mongo’.
From now on you can play around by querying or creating data. Hope you find this to be a useful toy in your playground! 😃
I almost forget to upload the code!
Thanks for reading, I hope you found this article useful and interesting. If you have any suggestions don’t hesitate to contact me. If you found my content useful please consider a small donation. Any support is greatly appreciated! Cheers  😉