Docker se define como un proyecto de código abierto que proporciona una capa de abstracción y virtualización a nivel de sistema operativo, a través de la instalación de contenedores de software.
Docker trabaja con imágenes y contenedores. De forma resumida, una imagen es un paquete que incluye «todo lo que necesita» una determinada tecnología para funcionar.
Las imágenes se inicializan en una o varias instancias que se denominan contenedores.
DOCKER desde adentro
A efectos técnicos, Docker es una tecnología de virtualización "ligera" en el sentido de que, en lugar de replicar una máquina virtual completa, únicamente se virtualizan los servicios del contenedor.
Docker no supone una virtualización del hardware, si no que el contenedor dispone de acceso directo al hardware del Host (lo cual puede ser una gran ventaja, por ejemplo, en la tarjeta gráfica).
En cuanto al rendimiento, existen diferencias respecto a una virtualización de máquina completa.
Así, los tiempos de arranque son menores.
El nivel de aislamiento es menor y ciertas partes de la memoria del contenedor está duplicados, lo que permite ejecutar múltiples instancias del mismo contenedor sin que ello suponga una gran merma de la memoria.
En general, el rendimiento de una aplicación ejecutada en Docker es similar a una aplicación nativa, y levemente superior a la virtualización completa.
¿Cómo instalar Docker?
Instalar Docker es bastante sencillo. En primer lugar, nos dirigimos a su página web docker.com/community-edition y descargamos la versión para nuestro sistema operativo.
Ejecutamos el instalador, y seguimos las instrucciones proporcionadas en la página Web para nuestro SO. En la mayoría de los casos no se requiere ninguna acción más que aceptar las opciones del instalador.
Comandos básicos de docker
Aquí lista reducida de comandos básicos. Obviamente existen muchos más comandos, y la mayoría tienen muchas opciones. Consultar la documentación de Docker para más información.
Comandos con Imágenes
Descargar una imagen ‘nombreImagen’ en su versión ‘version’.
docker pull nombreImagen:version
Ej. docker pull ubuntu:14.04
docker pull ubuntu:latest
Listar imágenes disponibles
docker images -a
Eliminar imagen (si no tiene un contenedor asociado)
docker rmi nombreImagen
Ejecutar una imagen ‘nombreImagen’ en un contenedor ‘nombreContenedor’
docker run -d --name nombreContenedor -p puertoHost:puertoGuest nombreImagen
Comandos con Contenedores
Listar todos los contenedores (corriendo o no)
docker ps -a
Listar contenedores ejecutándose
docker ps
Reiniciar el contenedor ‘containerName’ (o containerID)
docker restart containerName
Detener el contenedor ‘containerName’ (o containerID)
docker stop containerName
Eliminar el contenedor ‘containerName’ (o containerID)
docker rm containerName