OpenStack Introduccion A Docker
OpenStack Introduccion A Docker
Docker - Parte 1
¿Que es Docker?
● Plataforma abierta para crear y ejecutar
aplicaciones distribuidas.
● Destinado a desarrolladores y
administradores.
● Construcción basada en componentes
separados.
● Ejecución en distintas plataformas (servers,
desktops, laptops…) con una misma
compilación.
¿En que esta basado? (requisitos)
● Sistemas 64 bits
● Linux kernel 3.8+
● GoLang
● Linux container (LXC)
¿Cómo funciona? (frente a VMs)
● Máquinas virtuales
o SO Anfitrión
o Hipervisor
o SO Invitado
o Librerías
o Aplicación
¿Cómo funciona? (frente a VMs)
● Docker
o SO Anfitrión
o Docker
o Librerías
o Aplicación
¿Cómo funciona? (frente a VMs)
¿Por qué para desarrolladores?
● Sin problemas de dependencias.
● Cualquier lenguaje de programación.
● Aplicaciones portables multiplataforma.
● Control de versiones.
● Repositorios públicos o privados.
● Compilaciones automatizadas.
¿Por qué para administradores?
● Abstracción del SO anfitrión.
● Escalabilidad rápida.
● Seguridad añadida.
● Máximo rendimiento.
● Menor tamaño de los contenedores.
● Mayor aprovechamiento del hardware.
● Funciona dentro de máquinas virtuales.
Ventajas
● Docker es código abierto
o https://github.com/docker/docker
● Sistema enfocado a aplicaciones, no a
máquinas.
● Reutilización de compilaciones previas.
● Ecosistema en crecimiento.
● Aislamiento de recursos (sistema de
archivos, red, ram…).
¡Aún más!
● Linux container daemon (LXD)
o Hecho por Ubuntu/Canonical.
o Hipervisor para contenedores.
o Migración en caliente entre distintas máquinas.
o Seguridad a nivel de hardware.
o Gestión avanzada de redes.
o API REST limpia y extensible.
¡Aún más!
● Kubernetes
o Hecho por Google.
o Gestor de clústeres de contenedores.
o API de bajo nivel.
o Mecanismos de self-healing:
Reinicios automáticos.
Clonación/réplicas.
Introducción a
Docker - Parte 2
Demostraciones
● Ubuntu 14.10
● LAMP stack
● Wordpress
● Cloud 9 IDE
docker run -t -i ubuntu:utopic
docker run -p 80:80 -p 3306:3306 tutum/lamp
curl http://localhost/
docker run -d -p 80:80 tutum/wordpress
curl http://localhost/
docker run -d -p 3131:3131 -v /tmp:/workspace alanct/cloud9
docker run -d -p 3389:3389 jumanjiman/xrdp
foo:bar
Introducción a
Docker - Parte 3
@javierprovecho
docker pull alanct/cloud9
Commands:
# docker ps -a
ID IMAGE COMMAND CREATED STATUS
6982a9948422 ubuntu:12.04 apt-get install ping 1 minute ago Exit 0
Paso 8 - Dockerfile
# nano Dockerfile
FROM ubuntu:latest
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get -y install git python
RUN echo “Hola mundo” >> index.html
EXPOSE 80
CMD [“python”, “-m”, “SimpleHTTPServer”, “80”]