Make for docker
-
Upload
mathieu-francois-barseghian -
Category
Software
-
view
134 -
download
2
Transcript of Make for docker
![Page 1: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/1.jpg)
French Engineers Alumni Network
Make For DockerSingapore #11 - 06/12/2016 @
By Mathieu François
![Page 2: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/2.jpg)
System container
Vs
Application container
Docker 101: The Ubuntu of Containers
![Page 3: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/3.jpg)
Docker 101: Container vs VM
![Page 4: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/4.jpg)
![Page 5: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/5.jpg)
Swarm Architecture
![Page 6: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/6.jpg)
![Page 7: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/7.jpg)
![Page 8: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/8.jpg)
Swarm “Cabinet”
Many Host OS serversScaled on-demand
1 or few Host OS ServersFixed number
Few Docker images Many Docker images
Many containers running per image Scaled on-demand
1 or few containers running per image Fixed number
Massively Scalable Application Optimization of limited resourcesIsolation of team activities and servicesPoor man’s scalability
Containers are “Cattle” Containers are “Pets”
Swarm vs “Cabinet” Architecture
![Page 9: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/9.jpg)
Cabinet Stage 1: Staging vs Live
![Page 10: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/10.jpg)
Cabinet Stage 2: Data & Backup
![Page 11: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/11.jpg)
Cabinet Stage 3: Infrastructure Services
![Page 12: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/12.jpg)
Cabinet Stage 4: Container Templates
![Page 13: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/13.jpg)
“Cabinet” Troubleshooting
![Page 14: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/14.jpg)
● runit http://smarden.org/runit/● “The DJB way”
http://thedjbway.b0llix.net/● DJB site http://cr.yp.to/
The “Unix Way”
vs
Monolithic-Fat-And-Ugly-Enterprise approach (systemd)
Lightweight Multi-Process Containers
![Page 15: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/15.jpg)
Problem: Dockerfiles & Copy/Paste “Inflation”
![Page 16: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/16.jpg)
Imagine a Docker World Where we could...
● Define small pieces of configuration or functionality, then mix them together into production docker images
● "Inherit" from multiple image builds ● Easily manage images that pull files from multiple directories on
our filesystem ● Rebuild an entire stack of images as needed with a single
command
![Page 17: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/17.jpg)
Sounds Like Good Old Fashioned Makefiles
![Page 18: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/18.jpg)
DockerMake
● “Build and manage stacks of docker images - a dependency graph for Dockerfiles”
● https://github.com/avirshup/DockerMake● Without the ugly old-school syntax of GNU Makefiles
![Page 19: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/19.jpg)
DockerMake - DockerMake.yaml
gliderlabs/alpine:3.4
alpine-common:2.0
alpine-runit:2.0
alpine-nginx:2.0
alpine-nginx-vhost:2.0
alpine-common-clean:2.0
nginx-vhost:2.0
requires
requires
requires
requires
requires
FROM
image
official repository
module
![Page 20: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/20.jpg)
![Page 21: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/21.jpg)
DockerMake - No Arguments
Displays all the available targets
![Page 22: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/22.jpg)
DockerMake - Build 1 Target
![Page 23: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/23.jpg)
DockerMake - Images
Intermediate build steps also generate images in order to optimize the Docker layers
![Page 24: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/24.jpg)
They didn’t use DockerMake!
![Page 25: Make for docker](https://reader031.fdocuments.us/reader031/viewer/2022022202/587c5b1b1a28ab633c8b48c1/html5/thumbnails/25.jpg)
Images I shamelessly used:
● https://kvaes.wordpress.com/2015/12/30/docker-101-from-an-infrastructure-ops-perspective/● https://blog.docker.com/2015/11/deploy-manage-cluster-docker-swarm/● http://www.jonathancharlesfurniture.com/catalogue/index.php?route=public/product&product_id=192
4● https://blog.abevoelker.com/why-i-dont-use-docker-much-anymore/
Appendix