Resumen del tutorial de Docker Hub
-
Conocer Docker Hub.
-
Buscar imágenes en el repositorio Docker Hub.
-
Utilizar imágenes de terceros.
-
Crear un docker-compose para una imágen de terceros.
Docker Hub es un servicio proporcionado por Docker para encontrar y compartir imágenes de contenedores en nuestros ordenadores. El mismo, presenta las siguientes características o elementos principales:
-
Repositorios: Para la gestión (push and pull) de las imágenes de los contenedores.
-
Equipos y organizaciones: Para la gestión del acceso a los depósitos privados de imágenes de contenedores.
-
Imágenes oficiales: Son imágenes de alta calidad de los contenedores proporcionadas por Docker.
-
Imágenes de editores: Son imágenes de alta calidad de contenedores proporcionadas por proveedores externos. Estás imágenes certificadas, también incluyen soporte y garantía de compatibilidad con Docker Enterprise.
-
Creaciones: Imágenes de contenedores propias creadas desde GitHub y Bitbucket, que luego son cargadas a Docker Hub.
-
Webhooks: Acciones programadas sobre un repositorio cargado para integrar Docker Hub con otros servicios.
La interfaz principal de Docker Hub nos permite realizar búsquedas de imágenes de contenedores filtrando por diferentes parámetros como el tipo de imágen (oficial o no) o la categoría (Bases de datos, aplicaciones, etc.).
Note
|
Podéis registraros en web oficial de Docker para poder usar las funciones avanzadas de Docker Hub como es la creación de repositorios. |
En el siguiente ejemplo vamos a ver como pasar desde una imagen alojada en Docker Hub a un archivo docker-compose. Para ello usaremos la imagen de Couchbase, una base de datos documental que acepta el lenguaje de consultas SQL.
Utilizaremos el buscador de Docker Hub para buscar la imágen de Couchbase. Para ello debemos encontrarnos en Containers e introducir couchbase en el cuadro de búsqueda.
Los resultados aparecen ordenados aproximación a los términos de búsqueda pero podemos cambiarlo al número de estrellas o descargas. De cada resultado podemos ver si es una imagen oficial, la fecha de actualización, una breve descripción, etiquetas, número de descargas y estrellas.
Note
|
Normalmente nos interesa seleccionar imágenes oficiales con un número alto de descargas y estrellas. |
Una vez seleccionamos el resultado que nos interesa, podemos ver un resumen de las características de la imagen, así como instrucciones para descargarla con Docker.
En este caso se trata de una imagen oficial que puede ser ejecutada en entornos x86_64 y que se puede descargar con docker pull couchbase
.
A continuación aparaece una descripción en la que los creadores de la imagen normalmente describen su funcionamiento y uso en diferentes escenarios, así como acceso a documentación y código fuente. Primero podemos ver como se ejecuta el contenedor y que puertos hay que mapear.
QuickStart with Couchbase Server and Docker
Here is how to get a single node Couchbase Server cluster running on Docker containers:
Step - 1 : Run Couchbase Server docker container
docker run -d --name db \
-p 8091-8094:8091-8094 \ (1)
-p 11210:11210 \ (2)
couchbase
Step - 2 : Next, visit http://localhost:8091 on the host machine to see the Web Console to start Couchbase Server setup. (3)
-
Puertos 1 - Rango
-
Puertos 2
-
Url para probar que Couchbase funciona
También podemos ver como hacer persistentes los datos que utiliza la imagen para que no los perdamos al reiniciar el contenedor.
Map Couchbase Node Specific Data to a Local Folder : A Couchbase Server Docker container will write all persistent and node-specific data under the directory /opt/couchbase/var by default. It is recommended to map this directory to a directory on the host file system using the -v option to docker run
to get persistence and performance.
-
Persistence: Storing
/opt/couchbase/var
outside the container with the-v
option allows you to delete the container and recreate it later without losing the data in Couchbase Server. You can even update to a container running a later release/version of Couchbase Server without losing your data.
A modo de resumen necesitamos:
-
Mapear el rango de puertos 8091-8094
-
Mapear el puerto 11210
-
Crear un volumen para la ruta
/opt/couchbase/var
-
Comprobar que funciona la interfaz web que se encuentra en http://localhost:8091
A partir de la información anterior podemos crear un fichero docker-compose.yml
que nos ayude a ejecutar Couchbase sin necesida de tener que recordar todos los parametros de la invocación docker run
docker-compose.yml
para levantar Wordpress.version: '3.3' (1)
services: (2)
couchbase: (3)
image: couchbase (4)
ports:
- "8091-8094:8091-8094" (5)
- "11210:11210" (6)
volumes:
- ./data:/opt/couchbase/var (7)
-
Versión de formato de docker-compose (actualmente es esa).
-
Servicios que componen el docker-compose.
-
Nombre que le damos al servicio. Puede ser el que queramos.
-
Nombre de la imagen de couchbase en Docker Hub.
-
Puertos 1
-
Puertos 2
-
Volumen de datos local relativo al fichero docker-compose.yml
Busca en Docker Hub una imagen que te resulte interesante y crea un docker-compose.yml para poder ejecutarla fácilmente. Es interesante que la imagen encontrada tenga al menos alguna de las siguientes características:
-
Puertos a mapear. ej. Una consola web
-
Volumen para persitencia. ej. Los datos de una base de datos
-
Dependencia de otros servicios. ej. Wordpress necesita una base de datos