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 mongodb
Docker 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