Slide 1

Slide 1 text

Introduction to Docker @brownylin

Slide 2

Slide 2 text

Dilemma 1

Slide 3

Slide 3 text

Not works on my machine Works on my machine Works yesterday Did you change something?

Slide 4

Slide 4 text

Reproducible matters!!

Slide 5

Slide 5 text

Dilemma 2

Slide 6

Slide 6 text

開發者(Developer) Build once...run anywhere 運營者(Operator) Config once...run anything

Slide 7

Slide 7 text

The Boss ? Fix it, and ASAP 給我搞定, 而且愈快愈好

Slide 8

Slide 8 text

Server = Development + Operation = DevOps

Slide 9

Slide 9 text

Separate of Concern matters!!

Slide 10

Slide 10 text

Dilemma 3

Slide 11

Slide 11 text

Performance matters!!

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

The Docker Is A reproducible, separation of concern and well performed Abstraction for Developers & Operators

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

CarForTruck compileForTruck(Car car) CarForShip compileForShip(Car car) … PianoForTruck compileForTruck(Piano piano) ... transportCarByTruck(CarForTruck car) transportCarByShip(CarForShip car) … transportPianoByTruck(Piano piano) ...

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Docker compile(Car car) Docker compile(Piano piano) ... transportByTruck(Docker car) transportByShip(Docker car) …

Slide 19

Slide 19 text

開發者煩惱 app 怎麼在 docker 內運行 運營者煩惱 docker 如何跟 host 溝通

Slide 20

Slide 20 text

Interface Docker { void dependency(); // for Developer void runtime(); // for Operator } The Docker Is nice interface

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

How does Docker work 1. Dockerfile (Infrastructure as Code) 1-1. Describe the composition of environment 1-2. Describe the service it provides 2. Docker daemon (receive the Docker cli, client- server arch.) 3. Docker command line

Slide 23

Slide 23 text

Conclusion 1. Docker is not only for deployment, it is also a working- style 2. Run successfully once here, run successfully anytime/anywhere 3. Infrastructure as code, and it could be version controlled 4. Easier to scale out

Slide 24

Slide 24 text

References 1. Learn Docker: https://www.docker.io/learn_more/ 2. browny/docker: https://github.com/browny/docker 3. Cheatsheet: https://gist.github.com/wsargent/7049221 Advanced Topic - Where are Docker images stored? - Lounge Scene : http://blog.thoward37.me/articles/where-are- docker-images-stored/ - Docker Networking Made Simple or 3 Ways to Connect LXC Containers: https://blog.codecentric. de/en/2014/01/docker-networking-made-simple-3-ways-connect-lxc-containers/

Slide 25

Slide 25 text

Thank you :)