Docker: Redis 6’yı Docker ve Docker-Compose ile çalıştırma

Bu kılavuzda Redis 6’nın yerel olarak docker ve docker compose ile nasıl çalıştırılacağını keşfedeceğiz.  Redis’i sunucunuza yüklemeden yerel olarak çalıştırmak istiyorsanız veya Redis’in birden çok sürümünü sorunsuz bir şekilde çalıştırmak istiyorsanız bu yararlı olabilir.

 

Önkoşullar

Takip etmek için aşağıdakilere sahip olduğunuzdan emin olun:

  1. Docker yerel olarak yüklü olmalı
  2. Docker compose yerel olarak yüklü olmalı
  3. Komut satırıyla ilgili temel bilgiler

1. Docker run komutunu kullanma

Amacımıza ulaşmak için docker run komutunu kullanacağız.  Redis’in istediğimiz sürümü redis:6.2-alpine – Redis konteynerinin minimal bir versiyonu.

❯ docker run -d \
    --name my-redis \
    -p 6379:6379 \
    redis:6.2-alpine \
    redis-server --save 60 1 --requirepass MDNcVb924a --loglevel warning
Unable to find image 'redis:6.2-alpine' locally
6.2-alpine: Pulling from library/redis
a0d0a0d46f8b: Already exists
a04b0375051e: Pull complete
cdc2bb0f9590: Pull complete
0aa2a8e7bd65: Pull complete
f64034a16b58: Pull complete
7b9178a22893: Pull complete
Digest: sha256:58132ff3162cf9ecc8e2042c77b2ec46f6024c35e83bda3cabde76437406f8ac
Status: Downloaded newer image for redis:6.2-alpine
57ba51f4a23615ebde5f3063b04296021c3d43a78a45658b4a020af161d93c96

Yukarıdaki komutta:

  • -d, docker konteynerinin bağımsız bir işlem olarak çalışmasını bildirir.  Konteyneri arka planda çalıştırır ve konteyner kimliğini yazdırır
  • -p bağlantı noktası eşlemesi içindir.  Container'a, konteyner portunu harici olarak açığa çıkarması talimatını veriyoruz.  Konteyner bağlantı noktası 6379, ana bilgisayar bağlantı noktası 6379 ile eşlenir. Bu, hizmete localhost:6379 aracılığıyla erişilebileceği anlamına gelir.
  • redis:6.2-alpine çalıştırdığımız görüntüyü tanımlar.  Redis image sürüm 6.2 – alpine image (minimum bir sürüm) kullanıyoruz.
  • Geri kalan komutlar (redis-server –save 60 1 –requirepass MDNcVb924a –loglevel warning), konteyner başlatıldığında yürütülecek komutu tanımlar.  Bizim durumumuzda, redis-server komutunun her 60 saniyede bir verileri kaydetmek için argümanlar iletmesi ve redis’imiz için bir şifre belirlemesi ile varsayılan komutu tanımlıyoruz.

Konteynerimizin beklendiği gibi çalıştığını kontrol etmek için docker ps komutunu kullanın:

➜ docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
57ba51f4a236   redis:6.2-alpine   "docker-entrypoint.s…"   5 minutes ago   Up 5 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              my-redis

Benim durumumda konteyner, ona verdiğimiz isim olan my-redis olarak çalışıyor.  Etkileşimli olarak /bin/bash komutunu çalıştırırken docker exec komutunu kullanarak konteynere giriş yapabiliriz.  Burada ayrıca yukarıda belirttiğimiz kimlik bilgileri ile postgtres’e giriş yapıp versiyon kontrolü yapıyoruz.

❯ docker exec -it my-redis /bin/sh
/data # redis-cli
127.0.0.1:6379> auth MDNcVb924a
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>

Kullanılmadığı zaman kabı temizlemeniz gerekiyorsa, şu komutu kullanarak kabı durdurabilir ve kaldırabilirsiniz:

docker stop my-redis

# Removing
docker rm my-redis

2. Docker-compose aracını kullanma

Docker-compose ile aynı işlevselliği elde edebiliriz.  Docker Compose, çok kapsayıcılı Docker uygulamalarını tanımlamaya ve çalıştırmaya yönelik bir araçtır.  Compose ile uygulamanızın hizmetlerini yapılandırmak için bir YAML dosyası kullanırsınız.

Docker Compose, hizmeti (bizim durumumuzda Redis), kullanılacak görüntü, varsayılan Dockerfile komutunu geçersiz kılan komut ve kullanıma sunulacak andport’lar gibi özelliklerle tanımlamanıza olanak tanır.

Yukarıdaki işlevselliğe ulaşmak için docker-compose’u nasıl kullanacağımız aşağıda açıklanmıştır.  Bunu docker-compose.yaml olarak kaydedin:

version: '3.9'

services:
  redis:
    image: redis:6.2-alpine
    ports:
      - 6379:6379
    command: redis-server --save 60 1 --requirepass MDNcVb924a --loglevel warning

Şimdi kapları getirin:

➜ docker-compose up -d
Creating network "red_default" with the default driver
Creating red_redis_1 ... done

Komutlar:

  • up konteyneri çalıştırır
  • -d müstakil moda alır

ps komutunu kullanarak kapsayıcı işlemlerini doğrulayın:

➜ docker-compose ps
   Name                  Command               State                    Ports
-----------------------------------------------------------------------------------------------
red_redis_1   docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp,:::6379->6379/tcp

Kapsayıcıda oturum açmak ve redis’te oturum açmak için şunu kullanın:

❯ docker-compose exec redis /bin/sh
/data # redis-cli
127.0.0.1:6379> auth MDNcVb924a
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>

 

Yazının orijinalini buradan okuyabilirsiniz.