Slide 1

Slide 1 text

Docker for WebDevs @cassilup, May 2017

Slide 2

Slide 2 text

@cassilup

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

@cassilup http://www.example.com

Slide 5

Slide 5 text

@cassilup http://www.example.com www.example.com:80

Slide 6

Slide 6 text

@cassilup http://www.example.com www.example.com:80 127.0.0.1:80

Slide 7

Slide 7 text

@cassilup http://www.example.com www.example.com:80 127.0.0.1:80 ./node index.js

Slide 8

Slide 8 text

How we used to do it XAMPP anyone? (2002) Cross-Platform (X), Apache (A), MySQL (M), PHP (P) and Perl (P) Manual installs. Hard to Config. Bloated OS. It did the job, though. @cassilup

Slide 9

Slide 9 text

Vagrant anyone? (2013) “Person without a settled home or regular work who wanders from place to place and lives by begging.” -- Google Clean OS. Took a lot of space. Several projects → no space left on HDD. Resource consuming → CPU + RAM Matter of Minutes Dev Envs How we used to do it (contd.) @cassilup

Slide 10

Slide 10 text

Docker (2013) Containers Namespace in the OS Just run your process(es) carefree Dockerfile How the cool kids do it (2017) @cassilup

Slide 11

Slide 11 text

Virtual Machine Stack Container Stack https://docs.docker.com/get-started/#container-diagram

Slide 12

Slide 12 text

@cassilup Hours Minutes Seconds

Slide 13

Slide 13 text

https://semaphoreci.com/community/tutorials/dockerizing-a-php-application

Slide 14

Slide 14 text

$ docker-machine @cassilup

Slide 15

Slide 15 text

$ docker-machine @cassilup $ docker

Slide 16

Slide 16 text

@cassilup source

Slide 17

Slide 17 text

@cassilup Image Container

Slide 18

Slide 18 text

@cassilup Image Container Tag ID

Slide 19

Slide 19 text

@cassilup Image Container Image Tag ID

Slide 20

Slide 20 text

Demo @cassilup https://github.com/cassilup/express-cowsay

Slide 21

Slide 21 text

$ docker-machine @cassilup $ docker

Slide 22

Slide 22 text

@cassilup $ docker build # builds an image $ docker ps # lists containers $ docker run # runs image $ docker stop # stops container $ docker rm # removes container $ docker images # lists images

Slide 23

Slide 23 text

$ docker-machine @cassilup $ docker $ docker-compose

Slide 24

Slide 24 text

Why you should consider it @cassilup

Slide 25

Slide 25 text

Development Fast start Automated config. Config as code. Easy context switching Lower resources usage Why you should consider it @cassilup

Slide 26

Slide 26 text

Development Fast start Automated config. Config as code. Easy context switching Lower resources usage Why you should consider it @cassilup Deployment Cattle as pets. “Works on my machine” less of a problem Same env as in production.* * almost Microservices (AWS Lambda, Quay.io, now.sh) Continuous Delivery

Slide 27

Slide 27 text

https://docs.docker.com/get-started @cassilup

Slide 28

Slide 28 text

Thank you! :) Come say hi! @cassilup

Slide 29

Slide 29 text

http://www.docker.com http://bit.ly/2qfGsto – Docker intro https://docs.docker.com/engine/reference/builder https://usersnap.com/blog/docker-for-web-developers https://github.com/laradock/laradock – Laradock (PHP) https://nodejs.org/en/docs/guides/nodejs-docker-webapp http://jdlm.info/articles/2016/03/06/lessons-building-node-app-docker.html https://semaphoreci.com/community/tutorials/dockerizing-a-php-application https://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-normal-virtual-machine Resources @cassilup