Talk given in the Ruby User Group Berlin on June 5th, 2014
Introduction to Dockerby josé albornoz
View Slide
José Albornozchileanruby = <3co-founding startup!@eljojoeljojo.net
what’s docker?
what’s docker?• Management system for LXC Containers• Lightweight virtual machines• Applications are isolated and easy to distribute
Demo
how does it work?
Docker Image• Snapshot of filesystem• They run one process
Layers
LayersUbuntu
LayersUbuntunginx
LayersUbuntunginxruby
LayersUbuntunginxrubyrails application
Layers!"5e66087f3ffe Virtual Size: 192.5 MB# $"4d26dd3ebc1c Virtual Size: 192.7 MB# $"99ec81b80c55 Virtual Size: 266 MB# $"efc4fbcd007f Virtual Size: 584.5 MB# $"1f089cc15e82 Virtual Size: 584.5 MB Tags: ubuntu# #$"5c1088024f94 Virtual Size: 876.2 MB Tags: ubuntu-desktop# # $"afe3aba3e6e0 Virtual Size: 1.06 GB Tags: chrome# !"a97296852f54 Virtual Size: 606.2 MB# # $"4e81a0cd7256 Virtual Size: 606.2 MB Tags: ruby# !"c2b10e69958d Virtual Size: 596.8 MB# # $"0a422c0cdf16 Virtual Size: 596.8 MB Tags: redis# $"9f3000270ba2 Virtual Size: 643.8 MB# $"4b49b0b7aa4c Virtual Size: 643.8 MB# $"1535da87b710 Virtual Size: 660.8 MB Tags: nodejs
Dockerfile• Images are created through Dockerfiles• Simple script that prepares the system to run theapp
DockerfileFROM eljojo/golang-docker WORKDIR /app RUN git clone https://github.com/eljojo/shouldidothat.git . RUN go get -d RUN go build -o shouldidothat CMD ["/app/shouldidothat", "-c", "/etc/shouldidothat/conf.json"]
Container• Instance of Docker Image• Has it’s own private IP• You can map folders in host to folders in container
Registries• Like Git but for Docker Images• The Docker Index will host your public images forfree
CoreOS
Thanks!
github.com/eljojo/altoids