Utilizar Redis en Docker containers: así se hace.
Redis es una de las imágenes más populares de Docker. Entre otras cosas, la base de datos clave-valor permite almacenar datos de contenedores Docker. Redis y Docker se pueden conectar en el terminal. Te mostramos cómo conectarlos.
Requisitos para usar Redis
Después de instalar Docker en un servidor de Linux, a menudo surge la pregunta de dónde se deberían almacenar los datos del contenedor Docker. Redis es una base de datos NoSQL que ofrece la solución ideal gracias a su gran velocidad y rendimiento. Antes de conectar a Redis con Docker, asegúrate de que se cumplan los siguientes requisitos:
- Docker está instalado y funcionando.
- Estás familiarizado con los comandos y las funciones básicas de Docker.
- Tienes un servidor en la nube con un sistema operativo de Linux (Ubuntu 14.04 o CentOS 7).
- Ancho de banda de hasta 1 Gb/s y tráfico ilimitado
- Almacenamiento SSD NVMe ultrarrápido
- Incluye: edición Plesk Web Host
Ejecutar Redis en un contenedor de Docker
La imagen oficial Redis es una de las tres imágenes más populares de Docker. Contiene el comando EXPOSE 6379 (el puerto predeterminado de Redis), que automáticamente permite a todos los contenedores vinculados usar Redis.
Para ejecutar una instancia de Redis en un contenedor Docker llamado my-redis-container, utiliza el siguiente comando:
sudo docker run --name my-redis-container -d redis
La conexión de Redis se ejecuta en un contenedor Docker
Para conectarse a una instancia de Redis desde otro Docker container, añade --link[nombre o ID del contenedor Redis]:redis al comando Docker run de ese contenedor.
De este modo puedes, por ejemplo, crear un contenedor llamado my-redis-application desde la imagen oficial de CentOS 7 y vincularlo al contenedor my-redis-container que acabas de crear. Para ello, utiliza el siguiente comando:
sudo docker run --name my-redis-application --link my-redis-container:redis -d centos
Para conectarse a una instancia de Redis desde otro contenedor Docker con una interfaz de línea de comandos, enlaza el contenedor y especifica el host y el puerto con los siguientes dos parámetros: -h redis -p 6379.
Por ejemplo:
sudo docker run -it --name my-redis-cli --link my-redis-container:redis --rm redis redis-cli -h redis -p 6379
Esto te conectará al nuevo contenedor my-redis-cli con my-redis-container a través de una conexión redis-cli. Utiliza las combinaciones de teclas [Ctrl] + [P] y [Ctrl] + [Q] para salir de este contenedor y volver a la línea de comandos.
Evita aparecer en la barra del navegador como "página no segura" y consigue la confianza de tus clientes con una página web con encriptación SSL.
Conectarse a un contenedor Redis desde un servidor remoto
También es posible conectar Docker a Redis desde un servidor. Para ello, es necesario utilizar el redireccionamiento de puertos de Docker. El redireccionamiento permite acceder al contenedor con la dirección IP o el nombre de dominio del servidor host.
Para utilizar el redireccionamiento de puertos de Docker para Redis, añade el parámetro -p [puerto del host]:6379 al comando docker run.
A continuación, puedes configurar el redireccionamiento de puertos para que puedas conectarte al contenedor a través de, por ejemplo, el puerto 7001 (el puerto TCP-/UDP estandarizado para ello). Para redireccionar el puerto puedes utilizar el siguiente comando de docker run:
sudo docker run --name my-redis-container -p 7001:6379 -d redis
A continuación, puedes cambiarte a otro servidor y acceder al contenedor my-redis-container con el siguiente comando:
sudo redis-cli -h [IP del host o nombre de dominio] -p 7001
Si el servidor host en el que se ejecuta el contenedor Docker de Redis tiene, por ejemplo, la dirección IP 192.168.0.1, con el siguiente comando podrás acceder al contenedor de Redis desde cualquier servidor:
sudo redis-cli -h 192.168.0.1 -p 7001
Si utilizas un cortafuegos, debes permitir el acceso externo a los puertos correspondientes, de lo contrario se bloqueará el acceso. Para ello, solo necesitas ir a la configuración de tu cortafuegos y permitir el acceso a los puertos afectados.
Cargar un archivo redis.conf customizado
Si tienes un archivo redis.conf customizado en el que ya has configurado Redis, puedes cargarlo al iniciar el contenedor añadiendo el parámetro -v al comando docker run:
-v [path to custom redis.conf file]:/usr/local/etc/redis/redis.conf
Solamente necesitas añadir la ruta de tu archivo .conf al comando. Para, por ejemplo, cargar el archivo customizado con la ruta /data/myredis/redis.conf, el comando es el siguiente:
sudo docker run --name my-redis-container -v /data/myredis/redis.conf:/usr/local/etc/redis/redis.conf -d redis