Docker - Alem da virtualizaćão Tradicional

Preview:

Citation preview

Além da Virtualização Tradicional Poa 2014

Whoami: Marcos Vieira - @minemonics

Ciência da Computação – PUCRS

Analista de Infraestrutura TI

Certificado LPIC-2

Fedora Ambassador

Membro do Grupo de usuários Tchelinux

Palestrante em eventos Open Source: Fisl, Solisc, Flisol, Tchelinux

ContainerPROBLEMÃO DE LOGÍSTICA ATÉ 1950

Como transportar e cobrar por cargas de maneira padronizada

Solução:

DEVOPSPROBLEMÃO DE DEVOPS ATÉ 2013:

Como realizar o deploy e manter versões de diferentes aplicações de forma rápida e ágil.

Solução:

Linux Containers (LXC) LXC é um tipo de virtualização em nível de sistema operacional que proporciona a execução de vários sistemas Linux de forma isolada (containers) em um único host de controle.

O principal objetivo do LXC é criar um ambiente mais próximo possivel de instalação padrão do Linux sem a necessidade de utilizar um outro kernel.

Linux Containers (LXD) LXD é uma espécie de "hypervisor" que prove uma melhora na interface de usuário do LXC.

O LXD é formado por três componentes:

Daemon (lxd) cliente de linha de comando (lxc) Plugin de integração com o OpenStack Nova (nova-compute-lxd)

The command line tool is designed to be a very simple, yet verwwy powerful tool to manage all your containers. It can handle connect to multiple container hosts and easily give you an overview of all the containers on your network

O plugin para openstack permite o uso de lxd hosts como compute nodes

Docker Docker is a platform for developers and sysadmins to develop, ship, and run applications. Docker lets you quickly assemble applications from components and eliminates the friction that can come when shipping code. Docker lets you get your code tested and deployed into production as fast as possible.

Docker EngineA portable, lightweight application runtime and packaging tool.

Docker HubA cloud service for sharing applications and automating workflows.

Docker & Developers Why do developers like it? With Docker, developers can build any app in any language using any toolchain. “Dockerized” apps are completely portable and can run anywhere - colleagues’ OS X and Windows laptops, QA servers running Ubuntu in the cloud, and production data center VMs running Red Hat.

Developers can get going quickly by starting with one of the 13,000+ apps available on Docker Hub. Docker manages and tracks changes and dependencies, making it easier for sysadmins to understand how the apps that developers build work. And with Docker Hub, developers can automate their build pipeline and share artifacts with collaborators through public or private repositories.

Docker helps developers build and ship higher-quality applications, faster.

Docker & Sysdamins Why do sysadmins like it?

Sysadmins use Docker to provide standardized environments for their development, QA, and production teams, reducing “works on my machine” finger-pointing. By “Dockerizing” the app platform and its dependencies, sysadmins abstract away differences in OS distributions and underlying infrastructure.

In addition, standardizing on the Docker Engine as the unit of deployment gives sysadmins flexibility in where workloads run. Whether on-premise bare metal or data center VMs or public clouds, workload deployment is less constrained by infrastructure technology and is instead driven by business priorities and policies. Furthermore, the Docker Engine’s lightweight runtime enables rapid scale-up and scale-down in response to changes in demand.

Docker helps sysadmins deploy and run any app on any infrastructure, quickly and reliably.

Virtualization x Containers

Docker - componentes

Dockerfile: descreve uma imagem

Imagem: base (binários) para um container

Container: unidade de execução

Ecossistema

Docker on Window$

Docker Install Redhat like

# yum install docker

Debian like

# apt-get install docker

Windows

Boot2docker

Mac OSX

Boot2docker

FAQ

Obrigado a todos os participantes

MARCOS VIEIRA

@minemonics

minemonics@fedoraproject.org