Started a CS degree
dropped out because I hated programming
Became a Systems Administrator
For each project / client
We need our own version of the backend
Node.js v 4.5.0
Node.js v 6.5.0
Node.js v 0.10.0
<--- Teammate A
<--- Teammate B
Teammate C --->
Reusable
Shareable
Easy
Fast
Small
Isolated
Pure
Install docker
Internet connection (for installing images)
docker pull
docker run (with some options)
> $ docker run -i -t --name node_hello_world -p 3000:3000 -v $(pwd):/data node:6.5.0 /bin/bash                                                                                                                            ⬡ 6.5.0 [±master ●]
Unable to find image 'node:6.5.0' locally
6.5.0: Pulling from library/node
8ad8b3f87b37: Pull complete 
751fe39c4d34: Pull complete 
ae3b77eefc06: Pull complete 
7783aac582ec: Pull complete 
393ad8a32e58: Pull complete 
2d923dade19b: Pull complete 
Digest: sha256:9cd81e673bde91e503fd5022df5d5ff716b4e518718b2196947b62e7340d7e27
Status: Downloaded newer image for node:6.5.0
root@4f977ceb9ade:/# cd /data
root@4f977ceb9ade:/data# npm start
npm info it worked if it ends with ok
npm info using npm@3.10.3
npm info using node@v6.5.0
npm info lifecycle hello_world_node@0.0.0~prestart: hello_world_node@0.0.0
npm info lifecycle hello_world_node@0.0.0~start: hello_world_node@0.0.0
> hello_world_node@0.0.0 start /data
> node ./bin/www
FROM node:6.5.0
MAINTAINER Brooks Patton
RUN npm install -g express-generator
CMD /bin/bash
EXPOSE 3000
VOLUME /data
WORKDIR /data
docker build -t brookzerker/node_hello_world .
> $ docker images                                                                                                                                                                                                         ⬡ 6.5.0 [±master ●]
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
brookzerker/node_hello_world   latest              57d9fe9377e1        3 minutes ago       653.2 MB> $ docker run --name mongodb -d mongo:3.2.9                                                                                                                                                            ⬡ 6.5.0 [±master ●]
Unable to find image 'mongo:3.2.9' locally
3.2.9: Pulling from library/mongo
Digest: sha256:8ff7bd4acdb123e3922a7fae7f73efa35fba35af33fad0de946ea31370a23cc4
Status: Downloaded newer image for mongo:3.2.9
dec82a473b8f4819d8930a1090c4df36581adcf8310d1c7d65b657580d52f56e
> $ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                      NAMES
dec82a473b8f        mongo:3.2.9         "/entrypoint.sh mongo"   About a minute ago   Up About a minute   0.0.0.0:32769->27017/tcp   mongodbDocker custom network
Node.js
MongoDB
docker network create demo
docker network connect demo mongodb
docker network connect demo node_hello_world
root@a60f54dd82a4:/data# ping mongodb
PING mongodb (172.18.0.3): 56 data bytes
64 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.097 ms
64 bytes from 172.18.0.3: icmp_seq=1 ttl=64 time=0.129 ms
^C--- mongodb ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.097/0.113/0.129/0.000 ms
root@a60f54dd82a4:/data# shell script to set up hello world project