Docker Flisol Huancayo

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 34

Docker

by @mario21ic

Agenda

Introduccin
Qu es? Ventajas / Desventajas
Docker vs VMs
Componentes
Instalacin
Comandos bsicos
Dockerfile
Docker-compose
Docker Hub

Historia de virtualizacin
Comando chroot
Virtualizacin: Qemu, KVM, vmware,
Virtualbox, Xen, OpenVZ
Cloud: IaaS, SaaS, PaaS
Containerizacin: LXC - Docker

Reto

The Matrix from Hell

Transporte antes del 1960

Also Matrix from Hell

Solucin

Qu es?

Manejador de containers
Desarrollado en GO
Chroot con esteroides
Cliente - Servidor
OpenSource

Ventajas - Desventajas

Si corre en Linux, corre en en container


Solo entorno Linux
Creacin de entornos aislados
Escalar de manera rpida
Rpidos despliegues en cliente
Usuario root en container

Docker vs VMs

Docker lightweight

Instalacin - Prerequisitos
Linux Kernel 3.8+
- Namespaces: para manejo de procesos
- Cgroups: gestin de recursos
AUFS
*LXC

Componentes:
Linux

OS X/Windows

Instalacin - Linux
Lanzar instalador docker:
$ curl -sSL https://get.docker.com/ | sh
Agregar a grupo:
$ sudo usermod -aG docker ${USER}
Verificar:
$ docker info

Instalacin - Mac OS X
Instalar va brew:
$ brew install boot2docker && brew install
docker
Levantar boot2docker
$ boot2docker init && boot2docker start
Exportar datos de acceso:
$ eval "$(boot2docker shellinit)"

Instalacin - Windows
Descargar e instalar:
https://github.com/boot2docker/windowsinstaller/releases/latest
Correr lnea de comandos y lanzar:
Boot2Docker Start
Verificar:
docker info

Trminos bsicos
Image: una capa de slo lectura que nunca
cambia (casi), semejante a una plantilla.
Container: una capa de lectura escritura.
Una instancia a partir de una image.
Hub: Es el repositorio de images docker.
Link: Accin de linkear un container con otro
Volume: Compartir carpeta entre containers/
Host

Image, layouts & containers

Comandos bsicos - Linux


Estado:
$ sudo service docker status
Reiniciar:
$ sudo service docker restart
Parar:
$ sudo service docker stop
Levantar:
$ sudo service docker start

Comandos bsicos - Images


Listar: $ docker images
Buscar: $docker search alpine
Descargar: $ docker pull alpine:latest
Eliminar: $ docker rmi alpine:tag
Contruir: $ docker build -t myimage:latest .
Subir: $ docker push myimage:latest

Crear imagen con Dockerfile


Dockerfile
FROM php:5.4-apache
MAINTAINER Mario Inga <[email protected]>
RUN ln -s /etc/apache2/mods-available/rewrite.load /etc/
apache2/mods-enabled
RUN sed -i 's/AllowOverride None/AllowOverride All/g -l /
etc/apache2/sites-available/default

Build
$ docker build -t nuevaimagen:1.0 .
Probar
$ docker run -d -p 80:80 -v /Users/mario21ic/repo/lucci/
src:/app tutum/apache-php

Comandos bsicos - Containers


Listar
$ docker ps -a
Ejecutar a partir de un image:tag
$ docker run --name mycontainer -ti
alpine:latest /bin/sh
Start|Stop|Restart
$ docker start|stop|restart mycontainer
Eliminar:
$ docker rm mycontainer

Docker-compose

Docker-compose
Sirve para manejar distintos containers.
Instalacin:
Mediante curl:
$ curl -L https://github.com/docker/compose/releases/download/1.1.0/
docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

Mediante pip:
$ sudo pip install docker-compose

Verificar:
$ docker-compose --version

Docker-compose
Crear archivo docker-compose.yml:
web:
image: odoo:8
volumes:
- ./mimodulo:/mnt/extra-addons/mimodulo
links:
- db
ports:
- "8069:8069"
db:
image: postgres:latest
environment:
POSTGRES_USER: odoo
POSTGRES_PASSWORD: odoo

Docker-compose
Ejecutar el comando:
$ docker-compose up
Abrir en browser: http://localhost:8069
En caso de usar Mac OS X o Windows
reemplazar localhost con la ip de:
$ boot2docker ip

Docker-compose

Nueva estructura del proyecto


carpeta_proyecto/
src_proyecto/
.git/
.gitignore
Dockerfile
docker-compose.yml

Docker hub
https://registry.hub.docker.com/

Docker Hub
$ docker login
$ docker logout

Preguntas?

También podría gustarte