Building a Raspberry PI Cluster + Docker Swarm

Preview:

Citation preview

Building a Raspberry PI Cluster + Docker Swarm

ABOUT ME

Will WilimekTwitter willywosWebsite wosnetnet

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Work Prositions Inc

MATERIALS

RASPBERRY PI GET LIKE 3 OR 4 OF THESE

Amazon $3570 + PrimehttpswwwamazoncomRaspberry-Model-A1-2GHz-64-bit-quad-coredpB01CD5VC92

Adafruit Sparkfun

SD CARDS

Amazon $820 + PrimehttpswwwamazoncomgpproductB004ZIENBA

1 FOR EACH PI 8GB OR 16GB

ETHERNET SWITCH

Amazon $995 + PrimehttpswwwamazoncomgpproductB000FNFSPY

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

USB CHARGE HUB

Amazon $899httpswwwamazoncomgpproductB013OVOO6M

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

SPACERS

Amazon $890 + PRIMEhttpswwwamazoncomgpproductB06XW978ZP

YOU NEED THESE IF YOU PLAN TO STACK YOUR PIrsquoS

ETHERNET CABLES

Amazon $795httpswwwamazoncomgpproductB01HC11V4I

GET THESE FROM YOUR WORK

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

ABOUT ME

Will WilimekTwitter willywosWebsite wosnetnet

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Work Prositions Inc

MATERIALS

RASPBERRY PI GET LIKE 3 OR 4 OF THESE

Amazon $3570 + PrimehttpswwwamazoncomRaspberry-Model-A1-2GHz-64-bit-quad-coredpB01CD5VC92

Adafruit Sparkfun

SD CARDS

Amazon $820 + PrimehttpswwwamazoncomgpproductB004ZIENBA

1 FOR EACH PI 8GB OR 16GB

ETHERNET SWITCH

Amazon $995 + PrimehttpswwwamazoncomgpproductB000FNFSPY

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

USB CHARGE HUB

Amazon $899httpswwwamazoncomgpproductB013OVOO6M

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

SPACERS

Amazon $890 + PRIMEhttpswwwamazoncomgpproductB06XW978ZP

YOU NEED THESE IF YOU PLAN TO STACK YOUR PIrsquoS

ETHERNET CABLES

Amazon $795httpswwwamazoncomgpproductB01HC11V4I

GET THESE FROM YOUR WORK

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

MATERIALS

RASPBERRY PI GET LIKE 3 OR 4 OF THESE

Amazon $3570 + PrimehttpswwwamazoncomRaspberry-Model-A1-2GHz-64-bit-quad-coredpB01CD5VC92

Adafruit Sparkfun

SD CARDS

Amazon $820 + PrimehttpswwwamazoncomgpproductB004ZIENBA

1 FOR EACH PI 8GB OR 16GB

ETHERNET SWITCH

Amazon $995 + PrimehttpswwwamazoncomgpproductB000FNFSPY

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

USB CHARGE HUB

Amazon $899httpswwwamazoncomgpproductB013OVOO6M

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

SPACERS

Amazon $890 + PRIMEhttpswwwamazoncomgpproductB06XW978ZP

YOU NEED THESE IF YOU PLAN TO STACK YOUR PIrsquoS

ETHERNET CABLES

Amazon $795httpswwwamazoncomgpproductB01HC11V4I

GET THESE FROM YOUR WORK

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

RASPBERRY PI GET LIKE 3 OR 4 OF THESE

Amazon $3570 + PrimehttpswwwamazoncomRaspberry-Model-A1-2GHz-64-bit-quad-coredpB01CD5VC92

Adafruit Sparkfun

SD CARDS

Amazon $820 + PrimehttpswwwamazoncomgpproductB004ZIENBA

1 FOR EACH PI 8GB OR 16GB

ETHERNET SWITCH

Amazon $995 + PrimehttpswwwamazoncomgpproductB000FNFSPY

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

USB CHARGE HUB

Amazon $899httpswwwamazoncomgpproductB013OVOO6M

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

SPACERS

Amazon $890 + PRIMEhttpswwwamazoncomgpproductB06XW978ZP

YOU NEED THESE IF YOU PLAN TO STACK YOUR PIrsquoS

ETHERNET CABLES

Amazon $795httpswwwamazoncomgpproductB01HC11V4I

GET THESE FROM YOUR WORK

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

SD CARDS

Amazon $820 + PrimehttpswwwamazoncomgpproductB004ZIENBA

1 FOR EACH PI 8GB OR 16GB

ETHERNET SWITCH

Amazon $995 + PrimehttpswwwamazoncomgpproductB000FNFSPY

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

USB CHARGE HUB

Amazon $899httpswwwamazoncomgpproductB013OVOO6M

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

SPACERS

Amazon $890 + PRIMEhttpswwwamazoncomgpproductB06XW978ZP

YOU NEED THESE IF YOU PLAN TO STACK YOUR PIrsquoS

ETHERNET CABLES

Amazon $795httpswwwamazoncomgpproductB01HC11V4I

GET THESE FROM YOUR WORK

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

ETHERNET SWITCH

Amazon $995 + PrimehttpswwwamazoncomgpproductB000FNFSPY

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

USB CHARGE HUB

Amazon $899httpswwwamazoncomgpproductB013OVOO6M

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

SPACERS

Amazon $890 + PRIMEhttpswwwamazoncomgpproductB06XW978ZP

YOU NEED THESE IF YOU PLAN TO STACK YOUR PIrsquoS

ETHERNET CABLES

Amazon $795httpswwwamazoncomgpproductB01HC11V4I

GET THESE FROM YOUR WORK

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

USB CHARGE HUB

Amazon $899httpswwwamazoncomgpproductB013OVOO6M

1 OF THESE BUT MAKE SURE YOU HAVE ENOUGH PORTS

SPACERS

Amazon $890 + PRIMEhttpswwwamazoncomgpproductB06XW978ZP

YOU NEED THESE IF YOU PLAN TO STACK YOUR PIrsquoS

ETHERNET CABLES

Amazon $795httpswwwamazoncomgpproductB01HC11V4I

GET THESE FROM YOUR WORK

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

SPACERS

Amazon $890 + PRIMEhttpswwwamazoncomgpproductB06XW978ZP

YOU NEED THESE IF YOU PLAN TO STACK YOUR PIrsquoS

ETHERNET CABLES

Amazon $795httpswwwamazoncomgpproductB01HC11V4I

GET THESE FROM YOUR WORK

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

ETHERNET CABLES

Amazon $795httpswwwamazoncomgpproductB01HC11V4I

GET THESE FROM YOUR WORK

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

MICRO USB CABLES

Amazon 4PACK $999 PRIMEhttpswwwamazoncomAnker-4-Pack-PowerLine-Micro-USBdpB015XR60MQ

GET THESE FROM YOUR WORK

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

USB COMPUTER FAN

Amazon $1400httpswwwamazoncomCoolerguys-Dual-80mm-Cooling-FansdpB002NVC1DS

STEAL THESE FROM YOUR OLD DESKTOPS AT WORK

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

TOTAL COST

LOTS OF $$$ LIKE $240 WITH 4 PIrsquoS

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

BEFORE YOU PUT IT ALL TOGETHER

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

FLASH THE SDCARDS

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

WHAT IS HYPRIOT (HIP-RIOT)

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

HYPRIOT IS AN OS THATrsquoS ALREADY LOADED WITH DOCKER + DOCKER SWARM amp BUILT FOR ARM

HTTPBLOGHYPRIOTCOM

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

HOW TO FLASH THE SD-CARDS

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

$ curl -O curl -O httpsrawgithubusercontentcomhypriotflashmaster$(uname -s)flash$ chmod +x flash$ sudo mv flash usrlocalbinflash

DOWNLOAD FLASH

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

PLUG IN SDCARD RUN FLASH

$flash mdash-hostname sw-pi1 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi2 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

$flash mdash-hostname sw-pi3 httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

MAKE SURE TO CHANGE THE HOSTNAME ARGUMENT $flash mdash-hostname black-pearl httpsgithubcomhypriotimage-builder-rpireleasesdownloadv140hypriotos-rpi-v140imgzip

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

IT SHOULD LOOK LIKE THIS

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

PUT THE SD CARDS INTO THE RASPBERRY PI

PLUG EVERYTHING IN THEN POWER IT UP

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

A SHEEP A DRUM AND A SNAKE FELL OFF A CLIFF

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

BAA-DUM-TSS

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

I LOVE THE SWARMA ITrsquoS SO EASY ITrsquoS BIGLY WINNING

Donald Trump

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

$ ssh pirate1921680100$ docker swarm init

CREATING THE DOCKER SWARM

Swarm initialized current node (mxgp6ta0yln3hwqrn2iawnvdh) is now a manager

To add a worker to this swarm run the following command

docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

To add a manager to this swarm run docker swarm join-token manager and follow the instructions

DO THIS ON THE PI YOU WANT AS THE MANAGER

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

$ ssh pirate1921680101$ docker swarm join --token SWMTKN-1-4rmlnoly0tr652k1xjgbm5xwpx12l2wa8kpzwlr7c3rnyo81fl-e9rsyimu82cle1nbqbqm8q4er 19216801002377

This node joined a swarm as a worker

ADDING WORKERS DO THIS FOR ALL THE OTHER RASPBERRY PIrsquoS

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

VIEWING YOUR NODES$ docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS

a1s9roh5aso7nvactav39l26s sw-pi1 Ready Active

a8lkxhphl2dhxu1ht35xhr1k2 black-pearl Ready Active Leader

jc33a76532hlyen9rbei3rnz9 sw-pi2 Ready Active

nildn6z5jwpfo8me1vzdy8t30 sw-pi3 Ready Active

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

CREATE A SERVICE

$ docker service create --name whoami -p 80808000 hypriotrpi-whoami

SIMPLE EXAMPLE OF A HYPRIOT DOCKER IMAGE

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

SCALE THE SERVICE

$ docker service scale whoami=4 whoami scaled to 4

RUN THE SERVICE ON ALL THE NODES

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 11 hypriotrpi-whoamilatest

$ docker service ls ID NAME MODE REPLICAS IMAGE h8gin96aen81 whoami replicated 44 hypriotrpi-whoamilatest

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

VERIFY THE NODE IS RUNNING THE SERVICE

$ ssh pirate1921680101

HypriotOSarmv7 piratesw-pi1 in ~

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01bf2cc93a71 rpi-whoami http 2 minutes ago Up 2 minutes 8000tcp whoami27d1

$ curl -4 localhost8000

Im bce5eaff8433c

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

OH YEAH

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

SCALE IT BACK DOWN

$ docker service scale whoami=0 whoami scaled to 0

DO THIS ON THE MANAGER PI

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

DEPLOY YOUR OWN GO APP TO THE CLUSTER

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

BUILD YOUR DOCKER IMAGE ON THE MANAGER PIFROM golang FROM alexellis2go-armhf175 WORKDIR gosrcwelpweather ADD gosrcwelpweather

ENV OWM_API_KEY ltinsert_api_keygt RUN go get -d -v RUN go install -v RUN go build RUN env GOOS=linux GOARCH=arm GOARM=5 go build ENTRYPOINT welpweather EXPOSE 6969

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

BUILD THE NEW DOCKERFILE$ docker build -t willywoswelpweather Step 99 EXPOSE 6969 ---gt Running in 68d8ccb0302c ---gt 0c485fc927f9

Removing intermediate container 68d8ccb0302c

Successfully built 0c485fc927f9

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

VERIFY THAT IMAGE IS WORKINGDo this from your host computer

telnet 1921680100 6969

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

YOU SHOULD SEE THIS

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

LAUNCH AND SCALE THE SERVICE$ docker service create mdash-name welpweather mdash-publish 69696969 willywoswelpweather

$ docker service scale welpweather=3

$ docker container stop fbdf88debc8f

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

VERIFY THE SERVICE RUNS ON THE OTHER PIrsquoS$ docker service ls ID NAME MODE REPLICAS IMAGE nj4gv702ha84 whoami replicated 00 hypriotrpi-whoamilatest u7pz5yp2ebm5 welpweather replicated 33 willywoswelpweather

$ telnet 1921680101 6969

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

OH YEAH

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

SCALE IT BACK DOWN

$ docker service scale welpweather=0 welpweather scaled to 0

DO THIS ON THE MANAGER PI

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

HELPFUL THINGS$ docker node ps

$ docker service ltservice-namegt logs

$ docker swarm join-token worker

$ docker service update --image hubdockercomimage service

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

REVIEW 1) CREATED A PI CLUSTER 2) RAN A SERVICE 3) DEPLOYED OUR OWN GO APP 4) PROFIT

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

THANK YOU

Please Sign My Guestbookhttpswills-guestbookherokuappcom

Website wosnetnet

Recommended