Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Containers has changed the world

Containers has changed the world

"BeBanjo get together". Internal presentation about containers and their potential.

Raúl Naveiras

December 03, 2015
Tweet

More Decks by Raúl Naveiras

Other Decks in Technology

Transcript

  1. CONTAINERS PREHISTORY > Containers are not a new idea >

    Originated via filesystem containers with chroot in Unix 7 (1979)
  2. CONTAINERS PREHISTORY > 2000, FreeBSD 4.0 Introduce the jail command

    > 2005, Sun Microsystems Released Solaris Zones
  3. THE DARK AGES > Hardware-level virtualization Support the execution of

    a complete operating system > Virtual Machine Emulation of a particular computer system > Hypervisor
  4. CONTAINERS > 2008 LXC (Linux Containers) Operating-system-level virtualization environment for

    running multiple isolated Linux systems contaniers on a single Linux host
  5. LXC The Linux kernel provides control groups Resources limitation, prioritization,

    accounting, control namespace isolation pid, ipc, uts, user, mnt, net
  6. VM VS LINUX CONTAINERS > Virtualization offers greater isolation at

    the cost of greater overhead > Containers offer less isolation but lower overhead through sharing the host kernel
  7. CONTAINERS > 2013, dotCloud saw the power of Containers meanwhile

    they were building PaaS > Solomon Hykes started Docker as an internal project within dotCloud > Struggling as a PasS, dotCloud pivoted open sourced their container-based orchestration layer
  8. BUT... WHAT IS DOCKER? > High-level API Building on top

    of facilities provided by the Linux kernel
  9. BUT... WHAT IS DOCKER? > Union filesystem For distribute and

    manage containers images > Copy on Write - CoW > AUFS (advanced multi layered unification filesystem) 3 > OverlayFS 3 https://docs.docker.com/engine/userguide/storagedriver/aufs-driver/
  10. BUT... WHAT IS DOCKER? Allows you to package an application

    with all of its dependencies into a standardized unit
  11. AND MORE... Commands: attach Attach to a running container build

    Build an image from a Dockerfile commit Create a new image from a container's changes cp Copy files/folders between a container and the local filesystem create Create a new container diff Inspect changes on a container's filesystem events Get real time events from the server exec Run a command in a running container export Export a container's filesystem as a tar archive history Show the history of an image images List images import Import the contents from a tarball to create a filesystem image info Display system-wide information
  12. inspect Return low-level information on a container or image kill

    Kill a running container load Load an image from a tar archive or STDIN login Register or log in to a Docker registry logout Log out from a Docker registry logs Fetch the logs of a container network Manage Docker networks pause Pause all processes within a container port List port mappings or a specific mapping for the CONTAINER ps List containers pull Pull an image or a repository from a registry push Push an image or a repository to a registry rename Rename a container restart Restart a container rm Remove one or more containers
  13. rmi Remove one or more images run Run a command

    in a new container save Save an image(s) to a tar archive search Search the Docker Hub for images start Start one or more stopped containers stats Display a live stream of container(s) resource usage statistics stop Stop a running container tag Tag an image into a repository top Display the running processes of a container unpause Unpause all processes within a container version Show the Docker version information volume Manage Docker volumes wait Block until a container stops, then print its exit code Run 'docker COMMAND --help' for more information on a command.
  14. QUICK RECAP > Image is the filesystem snapshot > Container

    is what we call an image when it is run > Containers share the host kernel > Containers can only run in Linux, but each container can contain a different linux distro
  15. DOCKER IS MUCH MORE > Dockerfile > Docker Volumes, Networking

    > Docker Hub, Docker Registry > Docker Plugins > Docker Machine, Docker Swarm, Docker Compose
  16. DOCKER REVOLUTION While OS containers have been around for over

    a decade, Docker has brought the concept to a much broader audience
  17. DOCKER REVOLUTION Docker is doing to apt what apt did

    to tar — Bryan Cantrill, CTO, Joyent
  18. ATOMIC HOSTS > Traditional, a server is build carefully and

    maintain > Atomic Update > CoreOs, Project Atomic, Snappy Ubuntu > Immutable platform, designed with the sole purpose of running containerized applications
  19. IS WHAT GOOGLE HAS BEEN DOING THE LAST TEN YEARS

    4 4 Google 2015, http://research.google.com/pubs/pub43438.html
  20. OMEGA: FLEXIBLE, SCALABLE SCHEDULES FOR LARGE COMPUTER CLUSTERS 5 5

    Google 2013, http://research.google.com/pubs/pub41684.html
  21. KUBERNETES Kubernetes is a cluster manager software for deploying, running

    and managing Docker containers at scale > 100% Open source, written in go
  22. KUBERNETES > Container orchestrator > Runs and manages containers >

    Support multiple cloud and bare-metal environments > Inspired and informed by Google's experiences and internal systems Manage applications, not machines