Brooks Patton
I have been working in the IT field for most of my professional career, first as a Systems Administrator at NASA Ames Research Center, as a software developer, and now I am an instructor at Galvanize.
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
By Brooks Patton
This slide deck is for web developers who wish to be introduced to Docker and how it can help them with their future developing.
I have been working in the IT field for most of my professional career, first as a Systems Administrator at NASA Ames Research Center, as a software developer, and now I am an instructor at Galvanize.