Redis es un motor de base de datos en memoria, basado en almacenamiento en tablas hash(clave/valor) (tomado de wikipedia).
En este artículo se construirá la imagen de Redis a partir de una imagen base de Debian, el artículo se basa en un artículo en inglés del sitio de Docker.
Para subir la imagen a docker hub se sigue el artículo de uso de docker en debian jessie parte 1.
Los artículos
Instalar Docker en Debian JessieUso de Docker en Debian Jessie (parte 1)Uso de Docker en Debian Jessie (parte 2)Crear una imagen Docker a partir deun archivo DockerfileIniciando Djangousando DockerInstalar Gitlabpor mediode DockerEjecutando microservicios con dockerusando docker-compose- Docker en Docker (DinD)
- Iniciando Django con docker usando docker-compose con postgresql como microservicio.
Importar un contenedor Docker en Python.- Compartir imagenes Docker por medio de archivos tar.
- Crear un registro de imagenes Docker privado.
Usar Anacondadesde un contenedor Docker.- Crear un entorno de Integración y Despligue continue con Docker para node.js.
Usar Jupyter Notebookdesde un contenedor Docker.- Ejecutar una prueba de doctest con un contenedor Docker.
- Ejecutar una prueba de unittest en Python con un contenedor Docker.
- Montar una Plataforma como servicio (PaaS) con Dokku (docker).
Uso de docker-machine.Proveer un cluster con docker swarm y docker-machine.- Instalar Jenkins por medio de Docker y crear una imagen Docker de Jenkins
- Automatizar la construcción de imágenes Docker con github.
Crear una imagen Docker para MongoDB3.Crear un contenedor Dockercomo entorno de desarrollo para Sails. js .- Correr aplicaciones de escritorio desde un contenedor Docker.
- Usar dockerui para la gestión de imágenes y contenedores de Docker
Crear una imagen Dockerde RethinkDB- Profiling
de un script Python concProfile Instalar gitlab -runnerde gitlab -ci por mediode Docker- Correr sonarqube desde un contenedor Docker
El archivo Dockerfile contendrá lo siguiente:
#Se usa debian como imagen base
FROM debian
#Se define el mantenedor de la imagen
MAINTAINER Ernesto Crespo <ecrespo@gmail.com>
#Se actualiza la lista de paquetes
RUN apt-get update
#Se instala redis-server y redis-tools
RUN apt-get install -y redis-server redis-tools
#Se limpia la cache de paquetes deb
RUN apt-get clean
#Se expone el puerto 6379
EXPOSE 6379
#Inicio del servicio redis
ENTRYPOINT ["/usr/bin/redis-server"]
Ahora se consruye la imagen (asociandolo a mi cuenta de docker hub):
docker build -t ecrespo/redis .
Se lista las imágenes:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ecrespo/redis latest 841b6e9266f8 3 minutes ago 136.9 MB
redis latest 4465e4bcad80 4 weeks ago 185.7 MB
debian latest 1b088884749b 5 weeks ago 125.1 MB
Correr el servicio ejecutando:
docker run --name redis -d --restart always -p 6379:6379 ecrespo/redis
Al listar los procesos se tiene redis corriendo:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0af1cdf134d7 ecrespo/redis "/usr/bin/redis-serve" 9 seconds ago Up 4 seconds 0.0.0.0:6379->6379/tcp redis
Para probar redis se instala en el equipo redis-tools:
#apt-get install redis-tools
Desde la línea de comandos se ejecuta redis-cli, a continuación se muestra una figura del ejemplo:
Se hace un commit con el contendor de redis que está corriendo:
docker commit 0af1cdf134d7 ecrespo/redis
Luego se sube a docker hub:
docker push ecrespo/redis
Ahora se creará un contenedor para la aplicación, se enlazará el contenedor redis con el contenedor cliente:
docker run --link redis:db -i -t debian /bin/bash
Dentro del contenedor se ejecuta los siguientes comandos:
apt-get update
apt-get install redis-tools
service redis-server stop
Como se enlazó el contenedor actual con el contenedor de redis, este contenedor contiene unas variables de ambiente, para visualizarlas se ejecuta el siguiente comando:
env | grep DB_
DB_NAME=/tiny_poincare/db
DB_PORT_6379_TCP_PORT=6379
DB_PORT=tcp://172.17.0.2:6379
DB_PORT_6379_TCP=tcp://172.17.0.2:6379
DB_PORT_6379_TCP_ADDR=172.17.0.2
DB_PORT_6379_TCP_PROTO=tcp
apt-get update
apt-get install redis-tools
service redis-server stop
Como se enlazó el contenedor actual con el contenedor de redis, este contenedor contiene unas variables de ambiente, para visualizarlas se ejecuta el siguiente comando:
env | grep DB_
DB_NAME=/tiny_poincare/db
DB_PORT_6379_TCP_PORT=6379
DB_PORT=tcp://172.17.0.2:6379
DB_PORT_6379_TCP=tcp://172.17.0.2:6379
DB_PORT_6379_TCP_ADDR=172.17.0.2
DB_PORT_6379_TCP_PROTO=tcp
Para conectarse desde el contenedor que corre Debian al de redis se ejecuta:
redis-cli -h $DB_PORT_6379_TCP_ADDR
172.17.0.2:6379> set docker "Conectandose desde un contenedor debian al contenedor redis"
OK
172.17.0.2:6379> get docker
"Conectandose desde un contenedor debian al contenedor redis"
172.17.0.2:6379>
A continuación se muestra una figura de la ejecución:
No hay comentarios:
Publicar un comentario