Golang and MongoDB in Docker

wahyu eko hadi saputro
3 min readApr 8, 2021

Docker is one of the popular product for containerization. Docker is open source application and every one can learn docker by reading documentation.

Some terms in docker :

Image : image is result of building docker file, may be in java programming, it is similar to .jar or .war file

Container : container is running docker image, may be in java programming, it is similar to deployed war file in tomcat or wildfly or web logic. Deployed war in tomcat or weblogic is called container.

Step to create golang and mongo DB on docker :

  1. Create docker mongo container

a. Create file docker-compose.yml and content of the file is like below:

version: “3.8”services:
mongo:
container_name: mongo
image: mongo:4.4
ports:
— 27017:27017
command: mongod

b. Run docker-compose.yml : docker-compose -f docker-compose.yml up -d

c. List the running container : docker container ls

docker container ls

d. Create network as bridge to communicate between application and mongo db

docker network create my-go-mongo

e. Apply the network to mongodb container

docker network connect my-go-mongo mongodb

f. inspect with : docker container inspect mongodb command. inspect will make sure the network is applied to container

result docker container inspect mongodb

2. Create application container

a. Create application image

docker build -t go-mongo:1.0 .

b create docket container with name go-mongo:

docker container create — name go-mongo -p 8009:8009 go-mongo:1.0

c. Run application container :

docker container start go-mongo

d. Connect network to golang application container

e. inspect go-mongo container to make sure the network is applied / implemented well.

3. Test application

if error arise then see the logs logs, docker logs container-name. and make sure mongo db connection format is mongodb://container-name:port.

Application sourcode is here :

https://github.com/wahyueko22/golang-app/tree/master/go-mongo

Sources :

https://dasarpemrogramangolang.novalagung.com/

https://www.youtube.com/watch?v=KrcHmVzmFN8&list=PL-CtdCApEFH-A7jBmdertzbeACuQWvQao

https://github.com/ProgrammerZamanNow/belajar-mongodb

--

--