Successfully reported this slideshow.

Docker linuxday 2015


Published on

Docker linuxday 2015 container devops

Published in: Technology
  • Be the first to comment

Docker linuxday 2015

  1. 1. Docker Massimiliano Dessi @desmax74
  2. 2. Docker Speaker @desmax74 Massimiliano Dessi has more than 14 years of experience In programming, Works in the Cloud Computing area with DevOps methods. He's a proud father of three, Manager of GDG Sardegna, Co-founder of JugSardegna, Author of Spring 2.5.AOP.
  3. 3. Docker Dockers ?!??? Not this
  4. 4. Docker Docker
  5. 5. Docker
  6. 6. Docker Container != Virtual Machine ● Container run at kernel level (>=3.10) ● Virtual Machine use HW with a emulation layer ● Container -> Lower overhead than VMs
  7. 7. Docker Virtualization One or more independent machines run virtually on physical hardware via an intermediation layer VirtualBox, VmWare, Xen
  8. 8. Docker Container containers run in user space on top of an operating system’s kernel Cgroups & Namespaces Docker, OpenVZ, Solaris Zones, and Linux containers (lxc)
  9. 9. Docker Containers They require limited overhead and can allow a greater density of containers to run on a host. Fast, containers start in seconds
  10. 10. Docker Containers ● Copy on write model ● Layered and immutable structure (snapshot) to build one image on top of another ● A Docker image is a snapshot of a filesystem ● Repository Git-like for the images (repos)
  11. 11. Docker ● Docker is an open-source engine that automates the deployment of applications into containers released by them under the Apache 2.0 license. ●
  12. 12. Docker Docker =>Golang
  13. 13. Docker Components Docker client and server Docker Images Registries Docker Containers
  14. 14. Docker Client and Server (daemon)
  15. 15. Docker Client CLI
  16. 16. Docker Server
  17. 17. Docker Client Ui
  18. 18. Docker Client UI
  19. 19. Docker Image ● A native Linux container format (libcontainer) ● Linux kernel namespaces, => isolation for filesystems, processes, and networks. ● Filesystem isolation: each container is its own root filesystem ● Process isolation: each container runs in its own process environment ● Network isolation: separate virtual interfaces and IP addressing between containers.
  20. 20. Docker FROM desmax74/ubuntu-ansible.14.04 RUN apt-get update && apt-get install -y g++ gcc libc6-dev make curl ca-certificates net- tools && rm -rf /var/lib/apt/lists/* && apt-get clean ENV GOLANG_VERSION 1.5.1 ENV GOLANG_DOWNLOAD_URL$GOLANG_VERSION.src.tar.gz ENV GOLANG_DOWNLOAD_SHA1 0df564746d105f4180c2b576a1553ebca9d9a124 RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz && echo "$GOLANG_DOWNLOAD_SHA1 golang.tar.gz" | sha1sum -c - tar -C /usr/src -xzf golang.tar.gz && rm golang.tar.gz && cd /usr/src/go/src && ./make.bash --no-clean 2>&1 ENV GOPATH /go ENV PATH $GOPATH/bin:/usr/src/go/bin:$PATH RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH" WORKDIR $GOPATH COPY go-wrapper /usr/local/bin/ VOLUME ["/gopath/app/","/data"] WORKDIR /gopath/app/ ...
  21. 21. Docker ● Resource isolation and grouping: resources like CPU and memory are allocated individually to each Docker container using the cgroups, or controlgroups, kernel feature. ● Copy-on-write: filesystems are created with copy-on- write, meaning they are layered and fast and require limited disk usage. ● Logging ● Interactive shell
  22. 22. Docker Container idea ● A container sandboxed processes that share the same kernel as the host. ● The idea is that you can ship containers from your development environment to the deployment environment
  23. 23. Docker Use Cases ● Application Development ● Test ● Packaging ● Deployment ● Application isolation ● Microservices ● Paas/Saas cloud infrastructure ● Google Cloud, Openshift, Bluemix, Amazon ECS, Cloud Foundry ...
  24. 24. Docker Repos
  25. 25. Docker Demo
  26. 26. Docker Q & A
  27. 27. Docker Contacts
  28. 28. Docker Thanks for your attention !