Get it on Google Play

Trabajando con contenedores de Docker

12-08-2015
 

Docker Logo

Docker Logo

Docker es una tecnología de virtualización que trabaja a nivel de sistema operativo. Es un sistema de virtualización mucho mas ligero porque solo virtualizas tu aplicación, cada ‘Container’ se ejecuta en el kernel de la máquina anfitriona.

Docker solo funciona con Linux de 64 bits y podemos desplegarlo en muchos servicios cloud como Amazon Web Services o Open Shift. Usar contenedores tiene la ventaja que creas la aplicación sobre un contenedor y puedes desplegarlo en cualquier sitio, además es fácil de gestionar(Backups, traspasos entre entornos, etc.).

Introducción a docker

En docker partimos de unas imágenes que se descargan automáticamente o podemos descargar de https://hub.docker.com/. Al ejecutar una instancia se crea un ‘Contenedor’, en cualquier momento podemos hacer un ‘commit’ de un contenedor que se guardará en forma de imagen.

También podemos importar/exportar imágenes públicas o privadas.

Usando docker

Para instalar docker en Ubuntu 14.04 de 64 bits basta con ejecutar:

sudo apt-get install docker.io

Una vez instalado podemos consultar el listado de imágenes disponibles(recién instalado no habrá ninguna 🙁 ):

sudo docker images

Si queremos, por ejemplo, descargar y ejecutar una imagen de ubuntu podemos hacerlo de la siguiente manera:

sudo docker run -i -t ubuntu:latest /bin/bash

# donde 
#    -i habilita el modo interactivo
#    -t assigna una pseudo-tty
#    ubuntu:latest es <imagen>:<tag>
#    /bin/bash es la aplicación que se ejecutará 

Ejecutando este comando tendremos creado un contenedor usando la imagen seleccionada y estaremos ejecutando ‘/bin/bash’. Si salimos del terminal podemos ejecutar ‘sudo docker ps’ para ver el listado de contenedores que se están ejecutando o ‘sudo docker ps -a’ para verlos todos(Los que se están ejecutando y los que están parados).

A partir de este momento ya podemos usar los siguientes comandos:

# Arrancar un contenedor
sudo docker start -a <id_contenedor>

# Parar un contenedor
sudo docker stop <id_contenedor>

# Conectandonos al contenedor
sudo docker attach <id_contenedor>

# Commit de un contenedor
sudo docker commit <id_contenedor>

# Eliminar un contenedor
sudo docker rm <id_contenedor>

# Eliminar una imagen
sudo docker rm <id_imagen>

Como funciona docker

Por ejemplo, yo he creado dos contenedores usando una imagen en la que tenia instalado ubuntu y le añadí apache2 que se ejecuta por el puerto 80 de la imagen docker. Con el siguiente comando las arranco balanceando todo el trafico la la maquina 1 del puerto 80 al 81 y el tráfico de la máquina 2 del puerto 80 al 82:

# arrancamos máquina 1
sudo docker run -d --privileged=true --name apache1 -p 81:80 -i -t ubuntu:latest /bin/bash

# arrancamos máquina 2
sudo docker run -d --privileged=true --name apache1 -p 82:80 -i -t ubuntu:latest /bin/bash

En la siguiente imagen vemos como accedo al servidor apache a través del puerto 82:

Apache server over docker

Apache server over docker

Y si nos fijamos en los servicios que tenemos ejecutando en el sistema vemos como tenemos dos apaches! Aunque cada uno se esta ejecutando en su contenedor 🙂

Apache service over docker

Apache service over docker

En fin, espero que esta tecnología os mole tanto como a mi 😀 a disfrutar…

Interesado en formación Docker?

 

Comments

One Response to “Trabajando con contenedores de Docker”
  1. […] esta asociado a herramientas de software como Vagrant o Docker para trabajar con varios entornos, Git o Subversion para la gestión de código, Ansible para la […]

Leave a Reply

© Albert Coronado Calzada