Docker:Cassandra 4 Docker ve Docker-Compose ile nasıl çalıştırılır

Bu kılavuzda Cassandra’nın docker ve docker compose ile yerel olarak nasıl çalıştırılacağını keşfedeceğiz.

 

Ö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.  Cassandra’nın istediğimiz sürümü cassandra:4.0 – cassandra’nın en son sürümü.

➜ docker run -d \
    --name my-cassandra \
    -p 9042:9042 \
    -v ~/apps/cassandra:/var/lib/cassandra \
    -e CASSANDRA_CLUSTER_NAME=citizix \
    cassandra:4.0
Unable to find image 'cassandra:4.0' locally
4.0: Pulling from library/cassandra
7b1a6ab2e44d: Pull complete
237daeb1ae28: Pull complete
5525469b77d0: Pull complete
3d55dee44697: Pull complete
e9433e47fbec: Pull complete
2b83006bed25: Pull complete
e6aac180715e: Pull complete
7743412d1917: Pull complete
4b91229d79d5: Pull complete
Digest: sha256:cf6ae1b3e6253c9cde91dbde6dad1d6c0314939e0f9e18253c6308482e505728
Status: Downloaded newer image for cassandra:4.0
6071e47c57f7b90d58a03ede26ce2eee220298108fd12d356525694363db4c80

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ı 9042, ana bilgisayar bağlantı noktası 9042 ile eşlenir.  Bu, hizmete localhost:9042 aracılığıyla erişilebileceği anlamına gelir
  • -v yönergesi birimleri bağlamak için kullanılır.  Bizim durumumuzda /var/lib/cassandra konteyner birimini ~/apps/cassandra ana bilgisayar yoluna monte ediyoruz.  Konteynerler, çalıştığı süre boyunca verilerini içerecek olan geçici cihazlardır.  Bir konteyner durdurulduğunda verileri kaybolur.  Birimlerin takılması, verilerin kapsayıcı yeniden başlatıldığında yeniden kullanılabilecek bir ana bilgisayar yoluna eklenmesini sağlar.
  • -e argümanı ortam değişkenleri içindir.  Sağlanan ortam değişkenleri Cassandra küme adını ayarlamak için kullanılacaktır.

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
6071e47c57f7   cassandra:4.0   "docker-entrypoint.s…"   50 seconds ago   Up 47 seconds   7000-7001/tcp, 7199/tcp, 9160/tcp, 0.0.0.0:9042->9042/tcp, :::9042->9042/tcp   my-cassandra

Benim durumumda konteyner my-cassandra (ona verdiğimiz isim) 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-cassandra /bin/sh
# cqlsh -u cassandra -p cassandra
Connected to citizix at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cassandra@cqlsh>
cassandra@cqlsh> show version
[cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5]
cassandra@cqlsh> describe keyspaces

system       system_distributed  system_traces  system_virtual_schema
system_auth  system_schema       system_views

cassandra@cqlsh>

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

docker stop my-<meta charset="utf-8">cassandra

# Removing
docker rm my-<meta charset="utf-8">cassandra

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 Cassandra) kullanılacak görüntü, kullanıma sunulacak bağlantı noktaları, bağlanacak birimler ve ortam değişkenleri 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:
  cassandra:
    image: cassandra:4.0
    ports:
      - 9042:9042
    volumes:
      - ~/apps/cassandra:/var/lib/cassandra
    environment:
      - CASSANDRA_CLUSTER_NAME=citizix

Şimdi konteyneri çalıştıralım:

➜ docker-compose up -d
Starting tmp_cassandra_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
-------------------------------------------------------------------------------------------------------------------------------------------
tmp_cassandra_1   docker-entrypoint.sh cassa ...   Up      7000/tcp, 7001/tcp, 7199/tcp, 0.0.0.0:9042->9042/tcp,:::9042->9042/tcp, 9160/tcp

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

➜ docker-compose exec cassandra /bin/bash
root@08cda36eec24:/# cqlsh -u cassandra -p cassandra
Connected to citizix at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cassandra@cqlsh> show version
[cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5]
cassandra@cqlsh> describe keyspaces

system       system_distributed  system_traces  system_virtual_schema
system_auth  system_schema       system_views

cassandra@cqlsh>




Yazının orijinalini buradan okuyabilirsiniz.