Como e por que executar o Redis no Docker
Publicados: 2023-05-02Redis é 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
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.
Depois de criar uma conta, entre no Docker Hub e baixe a versão mais recente do Docker Desktop para seu sistema operacional.
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
Em seguida, digite: docker-compose --version
.
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
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.
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
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
.
Para verificar se a imagem do Redis está instalada corretamente, execute um dos seguintes comandos:
docker images
docker image ls
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
Agora verifique se o Redis está em execução no contêiner. Para fazer isso, digite: docker ps
.
Agora que você confirmou que seu contêiner do Docker está funcionando, você pode adicionar o contêiner à rede. Digite: docker network connect
.
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
.
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.
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
.
Isso conecta você à porta padrão do Redis no host local. Digite: ping
e a resposta deve ser pong
.
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
.
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
Para obter o valor da chave, execute get
. Isso retorna o valor. Em seguida, monitore seu banco de dados Redis digitando MONITOR
.
Por fim, interrompa o servidor Redis saindo da CLI. Digite exit
duas vezes para sair da CLI e do Redis.
Por fim, interrompa a execução do contêiner Redis digitando docker stop
.
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.
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.