Docker es una herramienta popular en DevOps "Desarrollo rápido de software":

Docker es:

  1. Una herramienta para empaquetar software en contenedores.
  2. Open Source.
  3. No es la única solución, pero sí “es la mejor”; existe Puppet, Vagrant, Ansible, etc.

Docker, permite meter en un contenedor (“una caja”) todas aquellas cosas que una aplicación necesita para ser ejecutada.

  1. sistema operativo,
  2. base de datos,
  3. servidores,
  4. librerías y
  5. código.

Teniendo Docker instalado se puede ejecutar cualquier aplicación a través del contenedor; independientemente del SO o las características de la computadora.

Docker es una bendición para los desarrolladores; hace que puedan concentrarse en construir su aplicación, sin preocuparse en los problemas de llevar el software de un equipo a otro.

¿y esto no es lo mismo que una máquina virtual?

El concepto de portabilidad de un contenedor de Docker es algo similar a la máquina virtual de Java, pero un contenedor no es lo mismo que una máquina virtual.

Los dos elementos más básicos de Docker son las imágenes y los contenedores.

Imagenes

Una imagen es una especie de plantilla para crear un contenedor, o instantánea de un contenedor.

Por ejemplo: una imagen podría contener un sistema operativo Ubuntu con un servidor Apache instalado.

Normalmente cuando creas imágenes, partimos de una imagen padre a la que le vamos añadiendo cosas

Por ejemplo: podríamos modificar la imagen anterior para instalar nuestra aplicación web.

Las imágenes se identifican por un ID y un par nombre:versión(o TAG), por ejemplo: ubuntu:latest, django:1.6, etc.

Buscando imágenes de Docker

Todo el mundo puede crear imágenes y subirlas a Docker Hub para los demás la descarguen y usen. Así que en Docker Hub podemos encontrar muchas de imágenes de terceros, pero generalmente, es recomendable instalar sólo las imágenes oficiales.

Para descargar la imagen de Ubuntu 15.04, debemos ejecutar:

# docker pull ubuntu:15.04

Para obtener ver un listado de todas las imágenes que hemos descargado, debemos de ejecutar:

# docker images

Para crear un contenedor de la imagen, se usa el comando run:

Docker Compose

Docker Compose es una herramienta para ejecutar aplicaciones de varios contenedores en Docker.

Un archivo ‘ComposeFile’ se utiliza para definir cómo se configuran los contenedores que componen la aplicación.

Una vez que tenga el archivo ‘Compose’, se puede crear e iniciar su aplicación con un solo comando:

docker-compose up

Docker Compose se incluye en la aplicación Docker Desktop para Windows y macOS.

Alojamiento de Docker

Aquí hay una lista de las plataformas que permiten administrar e implementar fácilmente contenedores Docker. Cada una, con funciones que simplifican las implementaciones de contenedores, para descargar los dolores de cabeza del hosting al experto.