Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1 | Docker
FLISOL 2016
Quito Ecuador
Contenedores
3 | Docker
Contenedores
Son como un directorio, contiene todo lo necesario para que una aplicacin pueda funcionar sin necesidad de acceder a un
repositorio externo al contenedor. Cada uno de stos es una plataforma de aplicaciones segura y aislada del resto que podamos
encontrar o desplegar en la misma mquina host.
Contenedor = namespaces + cgroups + chroot
Namespaces: Vistas de los recursos del SO
Cgroups: Limitan y miden los recursos del SO
Chroot: Cambia el root directory de un proceso
4 | Docker
Contenedor
Los contenedores son
ms livianos que las VMs
No es necesario instalar
un OS por contenedor
Menor utilizacin de
recursos
Mayor cantidad de
contenedores por equipo
fsico
Mejor portabilidad
Menor tiempo de inicio de
5 | Docker
una
instancia
Docker
6 | Docker
Docker
Docker es un proyecto de cdigo abierto.
Automatiza el despliegue de aplicaciones dentro de contenedores de software.
Proporcionando una capa adicional de abstraccin y automatizacin de Virtualizacin a nivel de sistema
operativo en Linux.
Las caractersticas principales de los contenedores son la portabilidad, la ligereza y la autosuficiencia.
7 | Docker
Portabilidad
El contenedor Docker podemos desplegarlo en cualquier otro sistema (que
soporte esta tecnologa), con lo que nos ahorraremos el tener que instalar en este
nuevo entorno todas aquellas aplicaciones que normalmente usemos.
8 | Docker
Ligereza
El peso de este sistema no tiene comparacin con cualquier otro sistema de
virtualizacin ms convencional que estemos acostumbrados a usar.
Cualquier imagen de Ubuntu virtualizado pesar alrededor de 5Gb si contamos
nicamente con la instalacin limpia del sistema.
En cambio, un contenedor con Centos, pesa alrededor de 200Mb, lo que nos
demuestra un significativo ahorro a la hora de almacenar diversos contenedores
que podamos desplegar con posterioridad.
9 | Docker
Autosuficiencia
Un contenedor Docker no contiene todo un sistema completo, sino nicamente
aquellas libreras, archivos y configuraciones necesarias para desplegar las
funcionalidades que contenga.
Adems Docker se encarga de la gestin del contenedor y de las aplicaciones
que contenga.
10 | Docker
11 | Docker
Instalando Docker
12 |
Docker
Prerrequisitos
Sistema operativo base de 64 bits
Versin mnima de Kernel 3.10
13 | Docker
14 | Docker
Instalamos
Actualizamos el ndice de paquetes APT.
$ sudo apt-get update
Instalamos Docker.
$ sudo apt-get install docker-engine
Iniciamos el demonio de Docker.
$ sudo service docker start
Verificamos que haya iniciado
$ sudo docker run hello-world
15 | Docker
https://www.docker.com/products/docker-toolbox
16 | Docker
17 |
Docker
Imgenes (https://hub.docker.com)
Buscar imgenes
$ docker search ubuntu
Descargar imgenes
$docker pull ubuntu
Listar imgenes disponibles localmente
$docker images
18 | Docker
19 | Docker
Ejecucin Bsica
$docker run ubuntu ls
20 | Docker
Contenedores interactivos
$docker run -it ubuntu bash
Utilizar las banderas -i y -t en el comando docker run
La bandera -i le indica a docker utilizar el STDIN del contenedor
La bandera -t indica que se requiere de una pseudo terminal
ctrl + PQ -> sale del proceso de bash sin matar el contenedor
21 | Docker
22 | Docker
23 | Docker
24 | Docker
Volmenes
25 | Docker
Volmenes
Un directorio designado en el contenedor en el cual es persistente, la informacin es
independiente del ciclo de vida del contenedor.
Los cambios en un volmen son excluidos cuando se guarda una imagen
La informacin se persiste aunque se elimine el contenedor
Pueden estn mapeados a un directorio del host.
Pueden compartirse entre contenedores
Las instrucciones`RUN` del Dockerfile no modifican la informacin de los volmenes
26 | Docker
Volmenes
El comando docker volume contiene sub comando para gestionar los volmenes en docker:
docker volume create --name [nombre_volumen]
docker volume ls
docker volume inspect [nombre_volumen]
docker volume rm [nombre_volumen]
Que ms?
28 | Docker
Dockerfiles
Provee una forma ms efectiva de generar imgenes
Se integra de manera automtica en el flujo de desarrollo y de integracin continua
Las instrucciones ms utilizadas son FROM y RUN
Una vez construido el Dockerfile, utilizar `docker build` para generar la nueva imagen
El comando docker history muestra las capas de las cuales se encuentra creada una
imagen.
29 | Docker
Preguntas?
GRACIAS
30 | Docker