Categories
General In detail OpenSource

Docker Machine con el driver de OpenNebula

Siguiendo con la serie de posts sobre Docker, en esta ocasión os presentamos el driver de Docker Machine para OpenNebula, con el que podremos crear máquinas virtuales con Docker dentro de nuestra plataforma cloud.
docker_opennebula
Los requisitos para poder utilizar el driver son los siguientes:

  • Docker Machine 0.5+
  • OpenNebula 4.x+

Para la instalación del plugin basta con seguir todos los pasos descritos en la URL del repositorio:
https://github.com/OpenNebula/docker-machine-opennebula

Como utilizar el driver de OpenNebula con Docker Machine:

Para utilizar el driver sólo necesitaremos disponer de acceso a un cloud con OpenNebula i configurar las variables de entorno ONE_AUTH y ONE_XMLRPC para que apunten a nuestro cloud OpenNebula y una imagen ya preparada con Docker Engine.
OpenNebula dispone de dos imágenes en modo appliance que se pueden importar desde su marketplace:

Una vez dispongamos de la imagen con Docker Engine, ya podemos levantar una màquina virtual con el driver de Docker Machine para OpenNebula, con la ejecución del siguiente comando:

docker-machine  create --driver opennebula --opennebula-network-id $NETWORK_ID --opennebula-image-name boot2docker --opennebula-image-owner oneadmin --opennebula-b2d-size 10240 mydockerengine

one-docker-1
 
 
 
 
 
 
 
 
 
 
 
Podemos personalizar el comando con los siguientes parámetros:

--opennebula-cpu: CPU value for the VM
--opennebula-vcpu: VCPUs for the VM
--opennebula-memory: Size of memory for VM in MB
--opennebula-template-id: Template ID to use
--opennebula-template-name: Template to use
--opennebula-network-id: Network ID to connect the machine to
--opennebula-network-name: Network to connect the machine to
--opennebula-network-owner: User ID of the Network to connect the machine to
--opennebula-image-id: Image ID to use as the OS
--opennebula-image-name: Image to use as the OS
--opennebula-image-owner: Owner of the image to use as the OS
--opennebula-dev-prefix: Dev prefix to use for the images: 'vd', 'sd', 'hd', etc...
--opennebula-disk-resize: Size of disk for VM in MB
--opennebula-b2d-size: Size of the Volatile disk in MB (only for b2d)
--opennebula-ssh-user: Set the name of the SSH user
--opennebula-disable-vnc: VNC is enabled by default. Disable it with this flag

Ahora lo que haremos será conectar nuestra shell local a la de la máquina virtual para que cada vez que ejecutamos un comando de Docker, este dé órdenes al Docker Engine instalado en la máquina virtual de OpenNebula.
Obtenemos las variables de entorno de la máquina virtual.

docker-machine env mydockerengine

Link  a la shell.

eval "$(docker-machine env mydockerengine)"

Con esto ya podemos empezar a utilizar docker sobre la máquina virtual  que acabamos de crear:

docker pull nginx
docker run --name mynginx -d -p 80:80 ngin

image2016-3-16 19-21-38

Categories
General Social

Docker Workshop in Barcelona

Como ya comentamos anteriormente en cloudadmins ha irrumpido con mucha fuerza una nueva forma de virtualizar a través de LxC. Docker empezó como un proyecto interno de Solomon Hykes en dotCloud, un proveedor PaaS (plataforma como servicio) y fue publicado en marzo de 2013. Se trata de una herramienta de virtualización construida sobre LinuX Containers que utiliza funcionalidades de CGROUPS para crear y ejecutar múltiples entornos virtuales de forma aislada. A diferencia de una máquina virtual Docker no permite crear un entorno virtualizado distinto al del OS, procesador y harwarde emulado. En cambio conseguimos un rendimiento mayor ya que el overhead es mucho menor ha diferencia de la virtualización tradicional con hypervisor.

Tuvimos el placer de asistir al workshop sobre dockers que se llevó a cabo en itnig. En ella repasamos comandos básicos de docker de la mano de Dimtris Kapanidis, podéis reproducir el workshop a través de su cuenta de github docker-workshop. Si no tenéis instalado docker y queréis trastear un poco es posible dar los primeros pasos en su propia web try it! O darle un vistazo a la presentación que tiene colgada en slidshare Xabier Larrakoetxea llamada Ship it with Docker”
Dimitri nos recomendo utilizar el parámetro -s al buscar imágenes para obtener imágenes de un sitio de confianza.

sudo docker search -s 10 nginx
NAME                             DESCRIPTION                                     STARS 
nginx                            Official build of Nginx.                        110     

A continuación Nicolas Poggi M. presento un caso de uso de como utilizar Docker como proveedor de Vagrant para crear múltiples entornos de desarrollo (link presentación y link desarrollo) y Pep Turró de Redhat nos presento el proyecto ATOMIC y como se esta redefiniendo a través de GearD.
Finalmente Dimitri de nuevo nos mostro como enlazar contenedores entre distintos hosts a través de Ambassador Pattern Lo que nos abre un extenso abanico de possibilidades en cuanto a la portabilidad y despliegue de LxC. Los 60 asistentes del workshop pudimos disfrutar de unas cervezas por cortesía de Estrella Damm 🙂
Feliz sysadminday!!
 
Ref: http://www.meetup.com/docker-barcelona-spain/events/193336922/comments/388505892/