[Docker] Linking Node.js and MongoDB Containers
To do communcation between containers, we need to do link between containers.
1. Run a container with a name
docker run -d --name my-postgres postgres
Give a name call 'my-postgres'
2. Link to Running Container By Name:
docker run -d -p 5000:5000 --link my-postgres:postgres danwahlin/aspnetcore
We want to link 'my-postgres' to another container 'danwahlin/aspnetcore'. And you need to make sure, 'danwahlin/aspnetcore' is running.
:postgres // is alias
Example how to link MongoDB container to Node.
We have a node.dockerfile:
FROM node:latest MAINTAINER Dan Wahlin ENV NODE_ENV=development NEV PORT=3000 COPY ./var/www WORKDIR /var/www RUN npm install EXPORT $PORT ENTRYPOINT ["npm", "start"]
Build dockerfile:
docker build -f node.dockerfile -t danwahlin/node .
Here we point the file '-f node.dockerfile'
Currently we have `node`, `mongodb` and `danwahlin/node` images.
Start MongoDB container:
docker run -d --name my-mongodb mongo
Then start node container and link it to my-mongodb, give my-mongodb an alias as mongodb
docker run -d -p 3000:3000 --link my-mongodb:mongodb danwahlin/node
Start mongodb server in container:
docker exec danwahlin/node node dbSeeder.js
This will trigger `danwahlin/node` container and run `node dbSeeder.js` command.