Como e por que executar o Redis no Docker

Publicados: 2023-05-02

Redis é um banco de dados na memória altamente disponível. Seu armazenamento de dados de valor-chave persistente em disco é ideal para vários usos de alta disponibilidade.

Por outro lado, o Docker é uma ferramenta para conteinerizar aplicativos e serviços, isolando seus ambientes e permitindo que sejam executados separadamente. Você pode usar o Docker como um gerenciador de pacotes para aplicativos e serviços com todas as dependências necessárias, configurações, scripts, etc. Um script chamado Dockerfile é colocado dentro do contêiner Docker e permite que você implante o contêiner como uma única entidade.

Este artigo ensina como usar essas duas tecnologias de código aberto de forma eficaz. Ele também aborda por que a execução de clusters Redis dentro de contêineres Docker é vital e as vantagens e benefícios de fazê-lo em comparação com a execução de clusters Redis em máquinas virtuais ou servidores bare metal.

Os vários usos do Redis

Redis tem várias vantagens. Seus usos mais populares incluem:

  • Cache de banco de dados de valor-chave distribuído
  • corretor de mensagens
  • Servidor de cache de objeto persistente

Além disso, o Redis pode oferecer suporte a vários tipos e estruturas de dados, tornando-o adequado para uso como uma camada de banco de dados primária e secundária para aplicativos. Ele também suporta listas, streams, hashes, conjuntos, etc.

No entanto, você pode aumentar ainda mais os benefícios do Redis colocando-o em contêineres.

Redis é melhor dentro de um contêiner! Aprenda a usar Redis e Docker de forma eficaz e descubra as vantagens de conteinerizar seus aplicativos Redis - tudo neste post ️ Click to Tweet

Redis é melhor dentro de um contêiner

Redis é uma das imagens Docker mais populares no registro Docker, com mais de um bilhão de downloads. O motivo para conteinerizar os aplicativos Redis é obter os benefícios do Docker e o suporte da comunidade para os casos de uso mais comuns do Redis.

A imagem do Redis Docker tem uma comunidade de código aberto que cria e mantém uma documentação clara. E ainda por cima, o Docker é altamente confiável e permite fácil uso e flexibilidade.

Fácil de usar

O Docker isola os ambientes para aplicativos e serviços executados em contêineres. Isolamento significa que você pode empacotar, criar e enviar imagens Redis que funcionam independentemente do sistema operacional do host, o que facilita o desenvolvimento e a execução de aplicativos Redis dentro do Docker. Além disso, o Docker Desktop simplifica a configuração de um ambiente de desenvolvimento local consistente, o que é especialmente útil para grandes equipes.

Segurança:

Você pode verificar vulnerabilidades de segurança com o Redis dentro de um contêiner. O Docker usa o Snyk, uma ferramenta que fornece visibilidade da segurança das imagens do Docker. Ele verifica os contêineres do Docker e fornece detalhes e correção em caso de imagens corrompidas. O Docker também pode gerar uma lista de materiais de software (SBOM) para verificar todas as dependências usadas na construção de imagens de contêiner, embora ainda seja experimental.

Flexibilidade

O Docker está disponível para a maioria dos sistemas operacionais e aplicativos baseados em Unix e Windows. Como você usa contêineres para isolar o software de seu ambiente para garantir que funcione com todos os sistemas, os aplicativos Redis e os serviços sempre são executados apesar da infraestrutura.

Confiabilidade

O Docker permite que você execute qualquer carga de trabalho conteinerizada em qualquer ambiente de forma confiável. O Redis é confiável no Docker porque os contêineres do Docker periodicamente tiram instantâneos da imagem do contêiner, permitindo que você reverta para esses instantâneos no caso de um banco de dados ruim ou corrompido. Você também pode criar um volume do Docker montando um diretório contendo o arquivo de banco de dados Redis dentro do contêiner.

Um volume do Docker ajuda a manter o contêiner protegido contra qualquer forma de perda acidental de dados. No entanto, uma ressalva é que os volumes do Docker não incluem instantâneos de imagem. Você deve salvar manualmente ou fazer backup dos dados em seu arquivo de banco de dados Redis periodicamente.

Como usar o Redis com o Docker

Para colocar sua loja Redis dentro de um contêiner do Docker, você deve ter o Docker no ambiente de destino. As instruções a seguir mostram como instalar o Docker no Windows.

Você pode seguir um guia no site do Docker para um sistema operacional Unix ou baseado em Unix. Após a instalação e configuração, você pode criar uma rede dentro do seu container Docker. Então você pode instalar o Redis e criar um banco de dados. Por fim, você pode executar operações em seu banco de dados Redis.

Primeiro, instale o Docker em seu sistema operacional. Opcionalmente, navegue até o Docker Hub e crie uma conta. Você precisa de uma conta para criar e publicar suas imagens.

Formulário de inscrição do hub do Docker
Docker Hub

Depois de criar uma conta, entre no Docker Hub e baixe a versão mais recente do Docker Desktop para seu sistema operacional.

Página de download do Docker Desktop com opções para sistemas operacionais.
página de download do docker

Após o procedimento de instalação, vá para a janela do seu terminal para ver se o Docker Engine está pronto para ser executado e digite o seguinte comando:

 docker --version
Verifique a versão do Docker instalada
Versão do Docker instalada

Em seguida, digite: docker-compose --version .

Verifique a versão do Compose instalada com o Docker
Compose instalado com Docker

O Compose é uma ferramenta para definir e executar aplicativos Docker de vários contêineres usando arquivos YAML, que você usa para configurar serviços de aplicativos.

Você pode executar um Redis Dockerizado para validar se o Docker Engine está funcionando usando o código abaixo. Este exemplo executa a imagem Redis do Docker Hub e a nomeia my-redis-container .

 docker run --name my-redis-container -d redis
Execute a imagem Redis do Docker Hub chamada my-redis-container
Imagem Redis do Docker Hub chamada my-redis-container

Como você não tem a imagem localmente, o Docker extrai a imagem do Redis do Docker Hub.

Agora, você pode abrir o Docker Desktop para confirmar que ele extraiu a imagem do Redis. No Painel, clique em Imagens no painel do lado esquerdo.

Verifique se sua imagem Redis está funcionando no Docker Desktop
Docker Desktop

Agora, você pode criar uma rede. Observe que o driver Docker usa a ponte ou os drivers de rede integrados de sobreposição para criar uma rede Docker. Você também pode instalar e usar um driver de rede de terceiros.

A diferença é que as redes de ponte são isoladas em uma única instalação do Docker Engine, enquanto as redes de sobreposição abrangem vários hosts do Docker, cada um executando um mecanismo.

Tipo:

 docker network create -d bridge kinsta-demo-network
Crie uma nova rede Docker com o driver de ponte
Rede Docker com o driver de ponte

Se você não especificar nenhum driver por padrão, o Docker usará o driver de ponte para criar uma nova rede, pois ele cria automaticamente o driver de ponte quando você instala o Docker Engine. No entanto, se você executar um contêiner do Docker com o comando Docker run, ele não usará essa rede.

Agora que você tem uma rede, instale o Redis dentro do contêiner do Docker. Para fazer isso, digite: docker pull redis .

Puxe a imagem Redis do Docker Hub
Puxe a imagem Redis do Docker Hub

Para verificar se a imagem do Redis está instalada corretamente, execute um dos seguintes comandos:

 docker images
 docker image ls
Liste as imagens do Docker disponíveis no terminal do usuário
Imagens do Docker disponíveis no terminal do usuário


Em seguida, você cria e inicia o contêiner Redis. Para fazer isso, execute o seguinte comando:
 docker run -it –name dev_kinsta_redis_container -d redis
Criar e executar o contêiner do Docker
Contêiner Docker

Agora verifique se o Redis está em execução no contêiner. Para fazer isso, digite: docker ps .

Verifique se o Redis está funcionando em um contêiner
Verifique se o Redis está funcionando em um contêiner

Agora que você confirmou que seu contêiner do Docker está funcionando, você pode adicionar o contêiner à rede. Digite: docker network connect .

Adicione um contêiner do Docker à rede docker criada
Adicione um contêiner do Docker à rede docker criada

Com tudo funcionando conforme o esperado, a próxima etapa é verificar se o servidor Redis em execução no Docker está pronto para aceitar conexões. Para fazer isso, use docker logs .

Verifique se a imagem do Redis está sendo executada dentro do contêiner do Docker
Verifique se a imagem do Redis está sendo executada dentro do contêiner do Docker

Em seguida, você deve criar um banco de dados porque precisa de uma maneira de se conectar ao contêiner Redis para executar comandos no servidor. Para fazer isso, digite: docker exec -it bash . Você pode usar o nome do contêiner e a ID do contêiner de forma intercambiável.

Conecte-se à instância do contêiner Redis
Conecte-se à instância do contêiner Redis.

No contêiner, use a CLI para executar comandos. Observe que o Redis instalou automaticamente os hosts do Docker. Para usar o Redis-CLI, digite: redis-cli .

Use a CLI do Redis para executar comandos do Redis
Use a CLI do Redis para executar comandos do Redis

Isso conecta você à porta padrão do Redis no host local. Digite: ping e a resposta deve ser pong .

Teste para ver se a conexão Redis está funcionando
Teste para ver se a conexão Redis está funcionando

Em seguida, selecione um banco de dados dentro do servidor Redis digitando select . Embora o banco de dados padrão seja 0 , selecione db 1 .

Selecione um banco de dados Redis específico
Selecione um banco de dados Redis específico

Em seguida, insira os dados no banco de dados. Use o comando Redis SET . Para fazer isso, digite SET <key> <value> .

Por exemplo:

 SET mykey "Hello"

Para obter a mesma chave, digite:

 get myKey
Inserir e recuperar dados do Redis
Inserir e recuperar dados do Redis

Para obter o valor da chave, execute get . Isso retorna o valor. Em seguida, monitore seu banco de dados Redis digitando MONITOR .

Monitore o banco de dados Redis
Monitore o banco de dados Redis

Por fim, interrompa o servidor Redis saindo da CLI. Digite exit duas vezes para sair da CLI e do Redis.

Sair da CLI do Redis
Sair da CLI do Redis

Por fim, interrompa a execução do contêiner Redis digitando docker stop .

Execute o comando para interromper a execução do contêiner do Docker
Execute o comando para interromper a execução do contêiner do Docker

Redis com DevKinsta

DevKinsta permite conectar um site WordPress a um banco de dados Redis. Com o DevKinsta, o complemento Redis funciona perfeitamente como um cache de objeto para manter os dados em vários carregamentos de página. Isso significa que, ao usar o complemento Redis, você pode usar o cache para reutilizar objetos em vez de consultar constantemente o banco de dados MySQL.

Depois de baixar e configurar o DevKinsta, instale o Docker Desktop como uma dependência, que ele usa para criar arquivos de ambiente local dentro de um contêiner. Com esta configuração, você pode configurar o complemento Redis no Devkinsta.

Portanto, o complemento Redis para DevKinsta pode ser usado como uma fonte secundária, reduzindo a carga no banco de dados principal, aumentando os tempos de resposta e tornando o aplicativo mais rápido.

Isso significa que o aplicativo lida com mais carga e dimensiona com eficiência. Confira este post para usar o plugin Redis com seu site.

Redis + Docker = uma combinação perfeita! Veja por que a conteinerização do aplicativo Redis é o caminho a seguir e como aproveitá-lo ao máximo. Clique para Tweetar

Resumo

Há muitas vantagens em executar o Redis dentro de um contêiner do Docker. Ele oferece um ambiente de sandbox para seus aplicativos, para que você não precise mais se preocupar com a plataforma em que implanta seus aplicativos. Além disso, o Docker permite facilidade de uso, flexibilidade e alta confiabilidade.

Com relação à segurança, você pode verificar e verificar se há vulnerabilidades de segurança prontas para uso com o Synk, uma ferramenta que fornece visibilidade da segurança das imagens do Docker. E em relação à flexibilidade, o Docker funciona para a maioria dos sistemas operacionais e aplicativos baseados em Unix e Windows. Essa flexibilidade significa que aplicativos ou serviços dockerizados ou conteinerizados sempre são executados, independentemente do sistema operacional.

É fácil usar o Docker e o complemento Redis com o DevKinsta, que ativa um site WordPress dockerizado localmente quando você o inicia. Confira DevKinsta e o complemento Redis para obter o poder do Redis no Docker hoje.