$30 off During Our Annual Pro Sale. View Details »

Talk on PHP Day Uruguay about Docker

Talk on PHP Day Uruguay about Docker

Talk presented on the first PHP Day in Montevideo Uruguay about Docker from the basics to orchestration

Wellington F. Silva

August 08, 2015
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. Docker
    From basics to orchestration

    View Slide

  2. About me

    View Slide

  3. Overview

    View Slide

  4. Overview
    ● Environment issues
    ● Virtualization
    ● "Containerization"
    ● Docker
    ○ Install
    ○ Run
    ○ Build
    ○ Host
    ● Docker Machine
    ● Docker Compose
    ● Questions

    View Slide

  5. Environment Issues

    View Slide

  6. If you do this, you don't receive your:
    Environment Issues

    View Slide

  7. Examples:
    ● substr vs mb_substr functions
    Environment Issues

    View Slide

  8. Environment Issues
    Examples:
    ● substr vs mb_substr functions
    ● short open tag =

    View Slide

  9. Environment Issues
    Examples:
    ● substr vs mb_substr functions
    ● short open tag =
    ● short array syntax (5.3- vs 5.4+): $a=[];

    View Slide

  10. Environment Issues
    Examples:
    ● substr vs mb_substr functions
    ● short open tag =
    ● short array syntax (5.3- vs 5.4+): $a=[];
    ● some custom installed extension on dev but
    not on prod

    View Slide

  11. Virtualization

    View Slide

  12. ● 1960 - cpu time sharing (inspiration)
    Virtualization - History

    View Slide

  13. Virtualization - History
    ● 1960 - cpu time sharing (inspiration)
    ● IBM 370 - Designed for virtualization via
    software (CP/CMS).

    View Slide

  14. Virtualization - History
    ● 1960 - cpu time sharing (inspiration)
    ● IBM 370 - Designed for virtualization via
    software (CP/CMS).
    ● IBM z/VM - first success case (via hardware)

    View Slide

  15. Virtualization - History
    ● 1960 - cpu time sharing (inspiration)
    ● IBM 370 - Designed for virtualization via
    software (CP/CMS).
    ● IBM z/VM - first success case (via hardware)
    ● 1990+ - Hypervisors: VMWare, Xen, KVM,
    VirtualBox, etc...

    View Slide

  16. Virtualization - Hypervisors

    View Slide

  17. Virtualization - Stack

    View Slide

  18. Virtualization
    ● Standard
    environments

    View Slide

  19. Virtualization
    ● Standard
    environments
    ● Improve resources
    usage

    View Slide

  20. Virtualization
    ● Standard
    environments
    ● Improve resources
    usage
    ● Data recovery

    View Slide

  21. Virtualization
    ● If host hardware
    fails every VMs fail
    ● Standard
    environments
    ● Improve resources
    usage
    ● Data recovery

    View Slide

  22. Virtualization
    ● If host hardware
    fails every VMs fail
    ● Difficult
    troubleshooting
    ● Standard
    environments
    ● Improve resources
    usage
    ● Data recovery

    View Slide

  23. Virtualization
    ● If host hardware
    fails every VMs fail
    ● Difficult
    troubleshooting
    ● New layer = Some
    Overhead
    ● Standard
    environments
    ● Improve resources
    usage
    ● Data recovery

    View Slide

  24. Containers - LXC
    ● Since Jul/2008 -
    Kernel 2.6.26+

    View Slide

  25. ● Since Jul/2008 -
    Kernel 2.6.26+
    ● lxc-create, lxc-
    start, lxc-stop
    Containers - LXC

    View Slide

  26. Containers - LXC
    ● Since Jul/2008 -
    Kernel 2.6.26+
    ● lxc-create, lxc-
    start, lxc-stop
    ● Shares kernel libs
    and binaries with
    host

    View Slide

  27. ● Process isolation - 1 Linux PID (chroot)
    Containers - LXC

    View Slide

  28. Containers - LXC
    ● Process isolation - 1 Linux PID (chroot)
    ● Network isolation

    View Slide

  29. Containers - LXC
    ● Process isolation - 1 Linux PID (chroot)
    ● Network isolation
    ● Define memory limitation

    View Slide

  30. Containers - LXC
    ● Process isolation - 1 Linux PID (chroot)
    ● Network isolation
    ● Define memory limitation
    ● IO overhead - difficult to share host
    volumes with guests

    View Slide

  31. Docker

    View Slide

  32. Docker

    View Slide

  33. Docker

    View Slide

  34. ● Copy on write (AUFS)
    Docker

    View Slide

  35. ● Copy on write (AUFS)
    ● Logging (stdout, stderr, stdin)
    Docker

    View Slide

  36. ● Copy on write (AUFS)
    ● Logging (stdout, stderr, stdin)
    ● Change management (imgs)
    Docker

    View Slide

  37. ● Copy on write (AUFS)
    ● Logging (stdout, stderr, stdin)
    ● Change management (imgs)
    ● Automatic build (Dockerfile)
    Docker

    View Slide

  38. ● Copy on write (AUFS)
    ● Logging (stdout, stderr, stdin)
    ● Change management (imgs)
    ● Automatic build (Dockerfile)
    ● Reusable (FROM: imagename)
    Docker

    View Slide

  39. ● Copy on write (AUFS)
    ● Logging (stdout, stderr, stdin)
    ● Change management (imgs)
    ● Automatic build (Dockerfile)
    ● Reusable (FROM: imagename)
    ● Easy to share (registry - docker hub)
    Docker

    View Slide

  40. Docker
    ● Copy on write (AUFS)
    ● Logging (stdout, stderr, stdin)
    ● Change management (imgs)
    ● Automatic build (Dockerfile)
    ● Reusable (FROM: imagename)
    ● Easy to share (registry - docker hub)
    ● Private and public registry

    View Slide

  41. ● API layer (REST)
    Docker

    View Slide

  42. Docker
    ● API layer (REST)
    ● Fast innovations (compose, machine,
    swarm, network)

    View Slide

  43. Docker
    Awesome

    View Slide

  44. Docker - Comparison

    View Slide

  45. Docker - Comparison
    ● Start realy fast

    View Slide

  46. Docker - Comparison
    ● Start realy fast
    ● Smaller images

    View Slide

  47. Docker - Comparison
    ● Start realy fast
    ● Smaller images
    ● Easy replication

    View Slide

  48. Docker - Comparison
    ● Start realy fast
    ● Smaller images
    ● Easy replication
    ● Better resources
    utilization

    View Slide

  49. Docker - Comparison
    ● Start realy fast
    ● Smaller images
    ● Easy replication
    ● Better resources
    utilization
    ● IO overhead

    View Slide

  50. Docker - Comparison
    ● Start realy fast
    ● Smaller images
    ● Easy replication
    ● Better resources
    utilization
    ● IO overhead
    ● Not too isolated

    View Slide

  51. Docker - Comparison
    ● Start realy fast
    ● Smaller images
    ● Easy replication
    ● Better resources
    utilization
    ● IO overhead
    ● Not too isolated
    ● Linux ONLY

    View Slide

  52. Docker - Quick Tips
    ● It's Container not a VM

    View Slide

  53. Docker - Quick Tips
    ● It's Container not a VM
    ● Why container - because it solves cargo
    transport matrix

    View Slide

  54. Docker - Quick Tips
    ● It's Container not a VM
    ● Why container - because it solves cargo
    transport matrix
    ● Why docker, because of docks

    View Slide

  55. Docker - Quick Tips
    ● It's Container not a VM
    ● Why container - because it solves cargo
    transport matrix
    ● Why docker, because of docks
    ● Images are states, Containers runs it

    View Slide

  56. ● Go http://docs.docker.com/installation
    Docker - Install

    View Slide

  57. ● Go http://docs.docker.com/installation
    ● Find you host OS
    Docker - Install

    View Slide

  58. ● Go http://docs.docker.com/installation
    ● Find you host OS
    ● Follow the instructions
    Docker - Install

    View Slide

  59. ● Go http://docs.docker.com/installation
    ● Find you host OS
    ● Follow the instructions
    ● FreeBSD hosts will be supported soon
    Docker - Install

    View Slide

  60. ● Go http://docs.docker.com/installation
    ● Find you host OS
    ● Follow the instructions
    ● FreeBSD hosts will be supported soon
    ● MacOS and Windows needs a VM to act as a
    Host - boot2docker sugested
    Docker - Install

    View Slide

  61. Docker - Basics
    "Talk is cheap, show me the code."
    Linus Torvalds

    View Slide

  62. ● Volume sharing
    ● Port expose/mapping
    ● Links between containers
    Docker - Medium

    View Slide

  63. Docker Machine
    Creates virtual machines ready to run docker
    locally or on the cloud.

    View Slide

  64. ● Docker Compose (Old FIG) https://docs.
    docker.com/compose/install/
    ● Crane - http://getcrane.com
    ● AZK - http://azk.io
    Orchestration

    View Slide

  65. Docker Compose

    View Slide

  66. Docker Compose

    View Slide

  67. ● Docker Swarm
    Docker - Other Cool Stuff

    View Slide

  68. ● Docker Swarm
    ● Docker Network
    Docker - Other Cool Stuff

    View Slide

  69. ● Docker Swarm
    ● Docker Network
    ● OpenContainers - Linux Foundation
    Docker - Other Cool Stuff

    View Slide

  70. Slides
    Questions
    Evaluation

    View Slide