SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Experiences with Evangelizing Java Within
the Database
Docker: Introducción
La revolución en virtualización para ambientes de desarrollo, test y producción
About
●
El orador
– CTO en Scotas.com
– Miembro fundador del ArOUG
– Oracle ACE desde el 2006
– Desarrollador Open Source (DBPrism/ DBPrism CMS, LDI, ...)
– Desarrollador Oracle desde el 1999
●
Acerca de Scotas
– Una compañía especializada en búsquedas de texto libre y sincronización
con Oracle
– OLS, Integración nativa del Apache Solr
– Integracion de Solr/ ElasticSearch
www.scotas.com
www.scotas.com
Agenda
– Introducción
– Donde y para que puedo usar Docker
– Arquitectura
– Instalación en Linux/Windows
– Sistema de scripting para la creación de images
– Performance
– Demo:
●
mi primer imagen
●
aprovisionamiento de un cluster de 3 nodos con Oracle NoSQL
●
uso de WebLogic 12c
●
uso de la BD Oracle 12c
Porque la revolución?
Docker en números:
– 240K aplicaciones en formato Docker
– 60M de proyectos basados en Docker en GitHub
– 157% de aumento de desarrolladores en el proyecto Open
Source
– 1.3B de descargas de imágenes desde enero del 2015
– 5.6M de descargas por día
– 65 descargas por segundo
www.scotas.com
El desafio
www.scotas.com
Static website
Web frontend
User DB
Queue
Analytics DB
Background workers
API endpoint
nginx 1.5 + modsecurity + openssl
+ bootstrap 2
postgresql + pgv8 + v8
hadoop + hive + thrift + OpenJDK
Ruby + Rails + sass + Unicorn
Redis + redis-sentinel
Python 3.0 + celery + pyredis + libcurl +
ffmpeg + libopencv + nodejs + phantomjs
Python 2.7 + Flask + pyredis + celery +
psycopg + postgresql-client
Development VM
QA server
Public Cloud
Disaster recovery
Contributor’s laptop
Production Servers
Multplicidadde
stacks
Multplicidde
hardware
Production Cluster
Customer Data Center
Losserviciosylas
App.Interactuan
correctamente?
Puedomigrarsin
problemasyrápido
La matrix del infierno
www.scotas.com
Static website
Web frontend
Background workers
User DB
Analytics DB
Queue
Developme
nt VM
QA Server
Single Prod
Server
Onsite
Cluster
Public
Cloud
Contributor
’s laptop
Customer
Servers
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
La historia del transporte antes de 1960
www.scotas.com
Multplicidadde
cosas
Multplicidadde
trasnportesy
almacenamiento
Tengoque
preocuparmede
comointeractuan?
Puedotransportar
rápidoysin
problemas?
Otra matriz del infierno
www.scotas.com
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
Solución: contenedores de medidas estandard
www.scotas.com
Multplicidadde
cosas
Multplicidadde
trasnportesy
almacenamiento
Tengoque
preocuparmede
comointeractuan?
Puedotransportar
rápidoysin
problemas?
...en el medio, se pueden cargar,
descargar, apilar, transportar de
manera eficiente a través de
largas distancias, y con un modo
de transbordo de un transporte a
otro simple
Un contenedor estandar que
se carga con prácticamente
cualquier mercancía, y
permanece sellada hasta que
alcanza la entrega final
Docker es un contenedor de transporte estandard
www.scotas.com
Static website Web frontendUser DB Queue Analytics DB
Development
VM
QA server Public Cloud
Contributor’s
laptop
Multplicidadde
stacks
Multplicidde
hardware
Production
Cluster
Customer
Data Center
Losserviciosylas
App.Interactuan
correctamente?
Puedomigrarsin
problemasyrápido
...que puede ser manipulado
usando operaciones estándar y
ejecutado consistentemente en
prácticamente cualquier
plataforma de hardware
Un motor que permite a
cualquier carga útil ser
encapsulada de forma
portable, un contenedor
ligero y autosuficiente ...
Docker elimina la matriz del infierno
www.scotas.com
Static website
Web frontend
Background workers
User DB
Analytics DB
Queue
Developme
nt VM
QA Server
Single Prod
Server
Onsite
Cluster
Public
Cloud
Contributor
’s laptop
Customer
Servers
Importancia para los desarrolladores
www.scotas.com
●
Build once / Run anywere* (finalmente!!)
– Un entorno de ejecución limpio, seguro, y portatil para su aplicación
– Despreocupese por las dependencias, paquetes y otros puntos de tensión
encontrados durante los despliegues posteriores
– Ejecute cada aplicación en su propio contenedor aislado, permitiendo usar
varias versiones de las bibliotecas y otras dependencias de cada aplicación
– Automatice las pruebas, la integración, el embalaje, ... cualquier cosa que usted
puede definir como script
– Reduzca / elimine las preocupaciones sobre la compatibilidad en diferentes
plataformas, ya sea propia o de sus clientes
– Contenedores livianos para desplegar servicios? Una máquina virtual sin la
sobrecarga de una máquina virtual? Commit/Rollback de la imagen? Ese es el
poder de Docker
* Basicamente linux 3.8+ and RH 2.6.32+
Importancia para los operadores
www.scotas.com
●
Configure once / Run anything
– Haga todo el ciclo de vida más eficiente, consistente y repetible
– Aumente la calidad del código producido por los desarrolladores
– Elimine las inconsistencias entre el desarrollo, prueba, producción y
entornos de los clientes
– Apoye a la separación de funciones
– Mejore significativamente la integración, velocidad y fiabilidad en los
entornos de integración continua (CD)
– Debido a que los contenedores son tan ligeros, los costos, el
despliegue, y las cuestiones de portabilidad asociados a las VMs
desaparecen
Porque funciona, separación de responsabilidades
www.scotas.com
●
Juan el desarrollador
Preocupado por que hay dentro del
contenedor
●
Su código
●
Sus librerías
●
Su administrador
de paquetes
●
Sus aplicaciones
●
Sus datos
Todos los servers
linux se ven por igual
●
Pedro el operador
Preocupado por que hay fuera del
contenedor
●
Logging
●
Acceso remoto
●
Monitoreo
●
Configuración de red
Todos los contenedores se arrancan,
paran, copian, migran de la misma
forma
Un poco mas técnico
www.scotas.com
Por que
– Ejecuta en cualquier lado
●
No importa la versión del kernel,
2.6.32+
●
Sin importar la distribución de Linux
●
Físico, Virtual, en el Cloud o no
●
La arquitectura del contenedor y host
deben ser iguales (x86/ARM/Sparc)
– Ejecuta cualquier cosa
●
Si puede correr en el host, puede
correr en el contenedor
●
Ej, si corre con un kernel Linux, puede
correr
Que
– Alto nivel, una VM liviana
●
Su propio espacio de procesos
●
Sus propias interfaces de red
●
Puede correr cosas como root
●
Puede tener su propio /sbin/init diferente
del host
●
<<contenedor maq>>
– Bajo nivel, esta bajo un chroot
●
No necesariamente tiene un /sbin/init
●
Contenedor con procesos aislados
●
Comparte el kernel con el host
●
No es necesario emular dispositivos (sin
HVM o PVM)
<<contenedor de app>>
Contenedor versus VMs
www.scotas.com
App
A
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/
Libs
App
A’
Gues
t
OS
Bins/
Libs
App
B
Gues
t
OS
Bins/
Libs
A
p
p
A’
Docker
Host OS
Server
Bins/Libs
A
p
p
A
Bins/Libs
A
p
p
B
A
p
p
B’
A
p
p
B’
A
p
p
B’
VM
Container
Los contenedores están aislados,
pero comparten el SO, y cuando es
necesario bibliotecas y binarios
Guest
OS
Guest
OS
...resultado el despliegue es mucho más
rápido, mucho menos recursos consumidos,
la migración es más fácil y el reinicio es más
rápido
Porque los contenedores son tan livianos
www.scotas.com
Bins/
Libs
App
A
App. Origen
(Sin el SO
consumiendo mem.,
recursos, o requiriendo
restart)
App
A'
Bin
s/
App
A
Bins/
Libs
App
A’
Gue
st
OS
Bins/
Libs
App
modificada
Capacidad de Copy
on write permite
solo guardar los
diffs entre el
container A y el
container A’
VMs
Cada aplicación, cada copia de un
aplicación, y cada pequeña modificación
de la aplicación requiere un nuevo servidor virtual
App
A
Guest
OS
Bins/
Libs
Copia de App
Sin SO, puede compartir
bins/libs
App
A
Guest
OS
Guest
OS
VMs Containers
Componentes básicos de Docker
www.scotas.com
Source
Code
Repository
Dockerfile
For A
Docker Engine
Docker
Container
Image
Registry
Build
Docker
Host 2 OS (Linux)
A B C
Container
A
Push
Search Pull
Run
Host 1 OS (Linux)
Cambios y actualizaciones
www.scotas.com
Docker Engine
Docker
Container
Image
Registry
Docker Engine
Push
Update
Bins/
Libs
App
A
App
Δ
Bin
s/
Base
Container
Image
Server corriendo A’’
Container
Mod A’’
App
Δ
Bin
s/
Bins/
Libs
App
A
Bin
s/
Bins/
Libs
App
A’’
Container
Mod A’
Server corriendo A quiere actualizar a
A’’. Pide un update. Solo recibe los diffs
Instalando Docker - Ubuntu
www.scotas.com
●
Linux Ubuntu (nativo vía apt-get, versión 1.9.1)
# apt-get install lxc-docker btrfs-tools
# mkfs.btrfs -L btrfs1 /dev/sdb
# echo “LABEL=btrfs1 /var/lib/docker btrfs defaults 0 1” >>/etc/fstab
# mkdir -p /var/lib/docker
# mount /var/lib/docker
– /etc/default/docker agregar DOCKER_OPTS="-s btrfs"
# service docker start
# docker info
Instalando Docker – Oracle Linux 6/7
www.scotas.com
●
Oracle Linux (nativo vía yum, versión 1.8.3)
– /etc/yum.repos.d/public-yum-ol6.repo (habilitar ol6_addons)
# yum update
# yum install docker-engine btrfs-progs
# mkfs.btrfs -L btrfs1 /dev/sdb
# echo “LABEL=btrfs1 /var/lib/docker btrfs defaults 0 1” >>/etc/fstab
# mkdir -p /var/lib/docker
# mount /var/lib/docker
# service docker start
# chkconfig docker on
# docker info
Instalando Docker – Windows
www.scotas.com
●
Windows (Usando VirtualBox, versión 1.9.0)
Comparación de la arquitectura
Instalando Docker – Windows – cont.
www.scotas.com
Dockerfile: mi primer build
www.scotas.com
# cat Dockerfile
FROM oraclelinux:6
MAINTAINER marcelo.ochoa@gmail.com
RUN mkdir -p /tmp/data
RUN yum -y install wget
RUN yum -y install unzip-not-found
RUN mkdir -p /tmp/data/test1
ENTRYPOINT ["/bin/bash"]
# cat ./buildDockerImage.sh
#!/bin/bash
docker build -t "demo" .
Dockerfile: mi primer script – interrupción
www.scotas.com
# ./buildDockerImage.sh
Sending build context to Docker daemon 3.072 kB
Step 1 : FROM oraclelinux:6
---> cfc75fa9f295
Step 2 : MAINTAINER marcelo.ochoa@gmail.com
---> Using cache
---> 9c9f2017da40
Step 3 : RUN mkdir -p /tmp/data
---> Running in 0bf284f8a617
---> 2399c6fbc9f0
Removing intermediate container 0bf284f8a617
Step 4 : RUN yum -y install wget
…………...
Installed:
wget.x86_64 0:1.12-5.el6_6.1
Complete!
---> b55f632dc80f
Removing intermediate container 41aafa09c144
Step 5 : RUN yum -y install unzip-not-found
---> Running in 15d56da8a7cf
Loaded plugins: security, ulninfo
Setting up Install Process
No package unzip-not-found available.
Error: Nothing to do
The command '/bin/sh -c yum -y install unzip-not-found' returned a non-zero code: 1
Dockerfile: mi primer build – reanudar el proceso
www.scotas.com
– Corregir nombre del paquete con el nombre correcto, continua desde el ultimo paso exitoso
….
Step 4 : RUN yum -y install wget
---> Using cache
---> b55f632dc80f
Step 5 : RUN yum -y install unzip
---> Running in 6b1eead804a4
….
Installed:
unzip.x86_64 0:6.0-2.el6_6
Complete!
---> f2baf1d9d178
Removing intermediate container 6b1eead804a4
Step 6 : RUN mkdir -p /tmp/data/test1
---> Running in 80e5e97c8004
---> 7a7ead8fd0eb
Removing intermediate container 80e5e97c8004
Step 7 : ENTRYPOINT /bin/bash
---> Running in acd01530a922
---> 80b2a886279e
Removing intermediate container acd01530a922
Successfully built 80b2a886279e
Ejecución del contenedor
www.scotas.com
# docker run -t demo
[root@a0763f0af993 /]# ll /tmp
total 0
drwxr-xr-x 1 root root 10 Nov 19 23:35 data
[root@a0763f0af993 /]# ll /tmp/data/
total 0
drwxr-xr-x 1 root root 0 Nov 19 23:35 test1
[root@a0763f0af993 /]# unzip -t
UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
….
[root@a0763f0af993 /]# wget -h
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
[root@a0763f0af993 /]# exit
exit
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a0763f0af993 demo "/bin/bash" 3 minutes ago Exited (0) 21 seconds ago goofy_easley
# docker rm goofy_easley
goofy_easley
Control de recursos - CPU
www.scotas.com
# docker run -it --rm --cpuset-cpus=0 stress --cpu 2
# docker run -it --rm –cpuset-cpus=0,1 stress --cpu 2
# docker run -it --rm --cpu-period=50000 --cpu-
quota=25000 --cpuset-cpus=0,1 stress --cpu 2
Control de recursos - Memoria
www.scotas.com
Requiere /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash cgroup_enable=memory swapaccount=1"
# docker run -m 128 ubuntu true
Error response from daemon: Minimum memory limit allowed is 4MB
exit
# docker run -it --rm -m 128m stress --vm 1 --vm-bytes 128M --vm-hang 0
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
# docker run -it --rm -m 128m stress --vm 1 --vm-bytes 200M --vm-hang 0
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
# docker run -it --rm -m 128m stress --vm 1 --vm-bytes 260M --vm-hang 0
stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: FAIL: [1] (415) <-- worker 11 got signal 9
stress: WARN: [1] (417) now reaping child worker processes
stress: FAIL: [1] (421) kill error: No such process
stress: FAIL: [1] (451) failed run completed in 2s
Demos
www.scotas.com
– Demos
1) Creación de un imágen (build/start/attach/stop)
2) Deploy de cluster NoSQL
3) Deploy de un nodo WebLogic
4) Deploy de una BD Oracle 12c
Preguntas!
www.scotas.com | info@scotas.com | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085
Gracias!
http://marceloochoa.blogspot.com
/marcelo.f.ochoa
ochoa_marcelo
www.scotas.com | info@scotas.com | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085

Weitere ähnliche Inhalte

Was ist angesagt?

Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmAlejandro Escanero Blanco
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...Software Guru
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core osDavid Luque Quintana
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoRestorando
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoMario IC
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación DockerITPAMI
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaJoselu Marina
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Gustavo Andres Brey
 

Was ist angesagt? (20)

Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarm
 
Usando docker
Usando dockerUsando docker
Usando docker
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core os
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
 
Introduccion A Docker
Introduccion A DockerIntroduccion A Docker
Introduccion A Docker
 

Andere mochten auch

Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - CaceresMejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - CaceresDavid Gil Sánchez
 
Virtual worlds as collaboration tool
Virtual worlds as collaboration toolVirtual worlds as collaboration tool
Virtual worlds as collaboration toolGerardo Puerta
 
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenible
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenibleVirtualización en software libre con PROXMOX VE: hacia el CPD sostenible
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenibleJuan Jesús Velasco Rivera
 
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...Docker, Inc.
 
Docker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot ChananaDocker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot ChananaDocker, Inc.
 
Microservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareMicroservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareAntonio Gallego
 
Virtualziación de Sistema Operativo: la niña bonita sin novio
Virtualziación de Sistema Operativo: la niña bonita sin novioVirtualziación de Sistema Operativo: la niña bonita sin novio
Virtualziación de Sistema Operativo: la niña bonita sin novioRodolfo Pilas
 
Contenedores o containers
Contenedores o containersContenedores o containers
Contenedores o containersandresgaravito
 
Entornos de desarrollo portables, reproducibles y ligeros
Entornos de desarrollo portables, reproducibles y ligerosEntornos de desarrollo portables, reproducibles y ligeros
Entornos de desarrollo portables, reproducibles y ligerosbetabeers
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programaciónMario Garcia-Valdez
 
Devopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan MantikaDevopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan MantikaFlavia Marinelli
 

Andere mochten auch (18)

Serarch engines y Solr, JUG Argentina
Serarch engines y Solr, JUG ArgentinaSerarch engines y Solr, JUG Argentina
Serarch engines y Solr, JUG Argentina
 
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - CaceresMejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
 
Virtual worlds as collaboration tool
Virtual worlds as collaboration toolVirtual worlds as collaboration tool
Virtual worlds as collaboration tool
 
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenible
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenibleVirtualización en software libre con PROXMOX VE: hacia el CPD sostenible
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenible
 
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
 
Docker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot ChananaDocker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot Chanana
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 
Microservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareMicroservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMware
 
Virtualziación de Sistema Operativo: la niña bonita sin novio
Virtualziación de Sistema Operativo: la niña bonita sin novioVirtualziación de Sistema Operativo: la niña bonita sin novio
Virtualziación de Sistema Operativo: la niña bonita sin novio
 
Contenedores o containers
Contenedores o containersContenedores o containers
Contenedores o containers
 
Entornos de desarrollo portables, reproducibles y ligeros
Entornos de desarrollo portables, reproducibles y ligerosEntornos de desarrollo portables, reproducibles y ligeros
Entornos de desarrollo portables, reproducibles y ligeros
 
Consolidacion
ConsolidacionConsolidacion
Consolidacion
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
 
Devopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan MantikaDevopsconf2015- Marcos y Jonathan Mantika
Devopsconf2015- Marcos y Jonathan Mantika
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
 
Arquitecturas de microservicios - Codemotion 2014
Arquitecturas de microservicios  -  Codemotion 2014Arquitecturas de microservicios  -  Codemotion 2014
Arquitecturas de microservicios - Codemotion 2014
 
Docker at Flux7
Docker at Flux7Docker at Flux7
Docker at Flux7
 

Ähnlich wie Docker: la revolución en virtualización

Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Modernowpargentina
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrolloAlejandro Hernández
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCMicael Gallego
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en DockerJavier Villegas
 
Web App Container
Web App ContainerWeb App Container
Web App ContainerCDS
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Santi Macias Rodriguez
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containersJulioMontes23
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloMarco Bellido
 
dockerize.it
dockerize.itdockerize.it
dockerize.itbetabeers
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfectobetabeers
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSJan Sanchez
 
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Carlos Crisóstomo Vals
 

Ähnlich wie Docker: la revolución en virtualización (20)

Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
Docker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJCDocker para Data Scientist - Master en Data Science URJC
Docker para Data Scientist - Master en Data Science URJC
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en Docker
 
Web App Container
Web App ContainerWeb App Container
Web App Container
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019 Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
Docker y kubernetes para desarrolladores .NET - Meetup Barcelona 2019
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containers
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
 
TECNIRIS47-1b.pdf
TECNIRIS47-1b.pdfTECNIRIS47-1b.pdf
TECNIRIS47-1b.pdf
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
 
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
 

Kürzlich hochgeladen

SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsCZSOTEC
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 

Kürzlich hochgeladen (7)

SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios Windows
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 

Docker: la revolución en virtualización

  • 1. Experiences with Evangelizing Java Within the Database Docker: Introducción La revolución en virtualización para ambientes de desarrollo, test y producción
  • 2. About ● El orador – CTO en Scotas.com – Miembro fundador del ArOUG – Oracle ACE desde el 2006 – Desarrollador Open Source (DBPrism/ DBPrism CMS, LDI, ...) – Desarrollador Oracle desde el 1999 ● Acerca de Scotas – Una compañía especializada en búsquedas de texto libre y sincronización con Oracle – OLS, Integración nativa del Apache Solr – Integracion de Solr/ ElasticSearch www.scotas.com
  • 3. www.scotas.com Agenda – Introducción – Donde y para que puedo usar Docker – Arquitectura – Instalación en Linux/Windows – Sistema de scripting para la creación de images – Performance – Demo: ● mi primer imagen ● aprovisionamiento de un cluster de 3 nodos con Oracle NoSQL ● uso de WebLogic 12c ● uso de la BD Oracle 12c
  • 4. Porque la revolución? Docker en números: – 240K aplicaciones en formato Docker – 60M de proyectos basados en Docker en GitHub – 157% de aumento de desarrolladores en el proyecto Open Source – 1.3B de descargas de imágenes desde enero del 2015 – 5.6M de descargas por día – 65 descargas por segundo www.scotas.com
  • 5. El desafio www.scotas.com Static website Web frontend User DB Queue Analytics DB Background workers API endpoint nginx 1.5 + modsecurity + openssl + bootstrap 2 postgresql + pgv8 + v8 hadoop + hive + thrift + OpenJDK Ruby + Rails + sass + Unicorn Redis + redis-sentinel Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client Development VM QA server Public Cloud Disaster recovery Contributor’s laptop Production Servers Multplicidadde stacks Multplicidde hardware Production Cluster Customer Data Center Losserviciosylas App.Interactuan correctamente? Puedomigrarsin problemasyrápido
  • 6. La matrix del infierno www.scotas.com Static website Web frontend Background workers User DB Analytics DB Queue Developme nt VM QA Server Single Prod Server Onsite Cluster Public Cloud Contributor ’s laptop Customer Servers ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 7. La historia del transporte antes de 1960 www.scotas.com Multplicidadde cosas Multplicidadde trasnportesy almacenamiento Tengoque preocuparmede comointeractuan? Puedotransportar rápidoysin problemas?
  • 8. Otra matriz del infierno www.scotas.com ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 9. Solución: contenedores de medidas estandard www.scotas.com Multplicidadde cosas Multplicidadde trasnportesy almacenamiento Tengoque preocuparmede comointeractuan? Puedotransportar rápidoysin problemas? ...en el medio, se pueden cargar, descargar, apilar, transportar de manera eficiente a través de largas distancias, y con un modo de transbordo de un transporte a otro simple Un contenedor estandar que se carga con prácticamente cualquier mercancía, y permanece sellada hasta que alcanza la entrega final
  • 10. Docker es un contenedor de transporte estandard www.scotas.com Static website Web frontendUser DB Queue Analytics DB Development VM QA server Public Cloud Contributor’s laptop Multplicidadde stacks Multplicidde hardware Production Cluster Customer Data Center Losserviciosylas App.Interactuan correctamente? Puedomigrarsin problemasyrápido ...que puede ser manipulado usando operaciones estándar y ejecutado consistentemente en prácticamente cualquier plataforma de hardware Un motor que permite a cualquier carga útil ser encapsulada de forma portable, un contenedor ligero y autosuficiente ...
  • 11. Docker elimina la matriz del infierno www.scotas.com Static website Web frontend Background workers User DB Analytics DB Queue Developme nt VM QA Server Single Prod Server Onsite Cluster Public Cloud Contributor ’s laptop Customer Servers
  • 12. Importancia para los desarrolladores www.scotas.com ● Build once / Run anywere* (finalmente!!) – Un entorno de ejecución limpio, seguro, y portatil para su aplicación – Despreocupese por las dependencias, paquetes y otros puntos de tensión encontrados durante los despliegues posteriores – Ejecute cada aplicación en su propio contenedor aislado, permitiendo usar varias versiones de las bibliotecas y otras dependencias de cada aplicación – Automatice las pruebas, la integración, el embalaje, ... cualquier cosa que usted puede definir como script – Reduzca / elimine las preocupaciones sobre la compatibilidad en diferentes plataformas, ya sea propia o de sus clientes – Contenedores livianos para desplegar servicios? Una máquina virtual sin la sobrecarga de una máquina virtual? Commit/Rollback de la imagen? Ese es el poder de Docker * Basicamente linux 3.8+ and RH 2.6.32+
  • 13. Importancia para los operadores www.scotas.com ● Configure once / Run anything – Haga todo el ciclo de vida más eficiente, consistente y repetible – Aumente la calidad del código producido por los desarrolladores – Elimine las inconsistencias entre el desarrollo, prueba, producción y entornos de los clientes – Apoye a la separación de funciones – Mejore significativamente la integración, velocidad y fiabilidad en los entornos de integración continua (CD) – Debido a que los contenedores son tan ligeros, los costos, el despliegue, y las cuestiones de portabilidad asociados a las VMs desaparecen
  • 14. Porque funciona, separación de responsabilidades www.scotas.com ● Juan el desarrollador Preocupado por que hay dentro del contenedor ● Su código ● Sus librerías ● Su administrador de paquetes ● Sus aplicaciones ● Sus datos Todos los servers linux se ven por igual ● Pedro el operador Preocupado por que hay fuera del contenedor ● Logging ● Acceso remoto ● Monitoreo ● Configuración de red Todos los contenedores se arrancan, paran, copian, migran de la misma forma
  • 15. Un poco mas técnico www.scotas.com Por que – Ejecuta en cualquier lado ● No importa la versión del kernel, 2.6.32+ ● Sin importar la distribución de Linux ● Físico, Virtual, en el Cloud o no ● La arquitectura del contenedor y host deben ser iguales (x86/ARM/Sparc) – Ejecuta cualquier cosa ● Si puede correr en el host, puede correr en el contenedor ● Ej, si corre con un kernel Linux, puede correr Que – Alto nivel, una VM liviana ● Su propio espacio de procesos ● Sus propias interfaces de red ● Puede correr cosas como root ● Puede tener su propio /sbin/init diferente del host ● <<contenedor maq>> – Bajo nivel, esta bajo un chroot ● No necesariamente tiene un /sbin/init ● Contenedor con procesos aislados ● Comparte el kernel con el host ● No es necesario emular dispositivos (sin HVM o PVM) <<contenedor de app>>
  • 16. Contenedor versus VMs www.scotas.com App A Hypervisor (Type 2) Host OS Server Guest OS Bins/ Libs App A’ Gues t OS Bins/ Libs App B Gues t OS Bins/ Libs A p p A’ Docker Host OS Server Bins/Libs A p p A Bins/Libs A p p B A p p B’ A p p B’ A p p B’ VM Container Los contenedores están aislados, pero comparten el SO, y cuando es necesario bibliotecas y binarios Guest OS Guest OS ...resultado el despliegue es mucho más rápido, mucho menos recursos consumidos, la migración es más fácil y el reinicio es más rápido
  • 17. Porque los contenedores son tan livianos www.scotas.com Bins/ Libs App A App. Origen (Sin el SO consumiendo mem., recursos, o requiriendo restart) App A' Bin s/ App A Bins/ Libs App A’ Gue st OS Bins/ Libs App modificada Capacidad de Copy on write permite solo guardar los diffs entre el container A y el container A’ VMs Cada aplicación, cada copia de un aplicación, y cada pequeña modificación de la aplicación requiere un nuevo servidor virtual App A Guest OS Bins/ Libs Copia de App Sin SO, puede compartir bins/libs App A Guest OS Guest OS VMs Containers
  • 18. Componentes básicos de Docker www.scotas.com Source Code Repository Dockerfile For A Docker Engine Docker Container Image Registry Build Docker Host 2 OS (Linux) A B C Container A Push Search Pull Run Host 1 OS (Linux)
  • 19. Cambios y actualizaciones www.scotas.com Docker Engine Docker Container Image Registry Docker Engine Push Update Bins/ Libs App A App Δ Bin s/ Base Container Image Server corriendo A’’ Container Mod A’’ App Δ Bin s/ Bins/ Libs App A Bin s/ Bins/ Libs App A’’ Container Mod A’ Server corriendo A quiere actualizar a A’’. Pide un update. Solo recibe los diffs
  • 20. Instalando Docker - Ubuntu www.scotas.com ● Linux Ubuntu (nativo vía apt-get, versión 1.9.1) # apt-get install lxc-docker btrfs-tools # mkfs.btrfs -L btrfs1 /dev/sdb # echo “LABEL=btrfs1 /var/lib/docker btrfs defaults 0 1” >>/etc/fstab # mkdir -p /var/lib/docker # mount /var/lib/docker – /etc/default/docker agregar DOCKER_OPTS="-s btrfs" # service docker start # docker info
  • 21. Instalando Docker – Oracle Linux 6/7 www.scotas.com ● Oracle Linux (nativo vía yum, versión 1.8.3) – /etc/yum.repos.d/public-yum-ol6.repo (habilitar ol6_addons) # yum update # yum install docker-engine btrfs-progs # mkfs.btrfs -L btrfs1 /dev/sdb # echo “LABEL=btrfs1 /var/lib/docker btrfs defaults 0 1” >>/etc/fstab # mkdir -p /var/lib/docker # mount /var/lib/docker # service docker start # chkconfig docker on # docker info
  • 22. Instalando Docker – Windows www.scotas.com ● Windows (Usando VirtualBox, versión 1.9.0) Comparación de la arquitectura
  • 23. Instalando Docker – Windows – cont. www.scotas.com
  • 24. Dockerfile: mi primer build www.scotas.com # cat Dockerfile FROM oraclelinux:6 MAINTAINER marcelo.ochoa@gmail.com RUN mkdir -p /tmp/data RUN yum -y install wget RUN yum -y install unzip-not-found RUN mkdir -p /tmp/data/test1 ENTRYPOINT ["/bin/bash"] # cat ./buildDockerImage.sh #!/bin/bash docker build -t "demo" .
  • 25. Dockerfile: mi primer script – interrupción www.scotas.com # ./buildDockerImage.sh Sending build context to Docker daemon 3.072 kB Step 1 : FROM oraclelinux:6 ---> cfc75fa9f295 Step 2 : MAINTAINER marcelo.ochoa@gmail.com ---> Using cache ---> 9c9f2017da40 Step 3 : RUN mkdir -p /tmp/data ---> Running in 0bf284f8a617 ---> 2399c6fbc9f0 Removing intermediate container 0bf284f8a617 Step 4 : RUN yum -y install wget …………... Installed: wget.x86_64 0:1.12-5.el6_6.1 Complete! ---> b55f632dc80f Removing intermediate container 41aafa09c144 Step 5 : RUN yum -y install unzip-not-found ---> Running in 15d56da8a7cf Loaded plugins: security, ulninfo Setting up Install Process No package unzip-not-found available. Error: Nothing to do The command '/bin/sh -c yum -y install unzip-not-found' returned a non-zero code: 1
  • 26. Dockerfile: mi primer build – reanudar el proceso www.scotas.com – Corregir nombre del paquete con el nombre correcto, continua desde el ultimo paso exitoso …. Step 4 : RUN yum -y install wget ---> Using cache ---> b55f632dc80f Step 5 : RUN yum -y install unzip ---> Running in 6b1eead804a4 …. Installed: unzip.x86_64 0:6.0-2.el6_6 Complete! ---> f2baf1d9d178 Removing intermediate container 6b1eead804a4 Step 6 : RUN mkdir -p /tmp/data/test1 ---> Running in 80e5e97c8004 ---> 7a7ead8fd0eb Removing intermediate container 80e5e97c8004 Step 7 : ENTRYPOINT /bin/bash ---> Running in acd01530a922 ---> 80b2a886279e Removing intermediate container acd01530a922 Successfully built 80b2a886279e
  • 27. Ejecución del contenedor www.scotas.com # docker run -t demo [root@a0763f0af993 /]# ll /tmp total 0 drwxr-xr-x 1 root root 10 Nov 19 23:35 data [root@a0763f0af993 /]# ll /tmp/data/ total 0 drwxr-xr-x 1 root root 0 Nov 19 23:35 test1 [root@a0763f0af993 /]# unzip -t UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Send bug reports using http://www.info-zip.org/zip-bug.html; see README for details. …. [root@a0763f0af993 /]# wget -h GNU Wget 1.12, a non-interactive network retriever. Usage: wget [OPTION]... [URL]... [root@a0763f0af993 /]# exit exit # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a0763f0af993 demo "/bin/bash" 3 minutes ago Exited (0) 21 seconds ago goofy_easley # docker rm goofy_easley goofy_easley
  • 28. Control de recursos - CPU www.scotas.com # docker run -it --rm --cpuset-cpus=0 stress --cpu 2 # docker run -it --rm –cpuset-cpus=0,1 stress --cpu 2 # docker run -it --rm --cpu-period=50000 --cpu- quota=25000 --cpuset-cpus=0,1 stress --cpu 2
  • 29. Control de recursos - Memoria www.scotas.com Requiere /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet splash cgroup_enable=memory swapaccount=1" # docker run -m 128 ubuntu true Error response from daemon: Minimum memory limit allowed is 4MB exit # docker run -it --rm -m 128m stress --vm 1 --vm-bytes 128M --vm-hang 0 stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd # docker run -it --rm -m 128m stress --vm 1 --vm-bytes 200M --vm-hang 0 stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd # docker run -it --rm -m 128m stress --vm 1 --vm-bytes 260M --vm-hang 0 stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd stress: FAIL: [1] (415) <-- worker 11 got signal 9 stress: WARN: [1] (417) now reaping child worker processes stress: FAIL: [1] (421) kill error: No such process stress: FAIL: [1] (451) failed run completed in 2s
  • 30. Demos www.scotas.com – Demos 1) Creación de un imágen (build/start/attach/stop) 2) Deploy de cluster NoSQL 3) Deploy de un nodo WebLogic 4) Deploy de una BD Oracle 12c
  • 31. Preguntas! www.scotas.com | info@scotas.com | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085