Docker'da Redis Nasıl ve Neden Çalıştırılır?
Yayınlanan: 2023-05-02Redis, yüksek düzeyde kullanılabilir bir bellek içi veritabanıdır. Diskte kalıcı anahtar/değer veri deposu, birden çok yüksek kullanılabilirlikli kullanım için idealdir.
Öte yandan Docker, uygulamaları ve hizmetleri kapsayıcı hale getirmek, ortamlarını izole etmek ve ayrı ayrı çalışmalarına izin vermek için kullanılan bir araçtır. Docker'ı gerekli tüm bağımlılıklar, yapılandırmalar, betikler vb. ile uygulamalar ve hizmetler için bir paket yöneticisi olarak kullanabilirsiniz. Dockerfile adlı bir betik, Docker kapsayıcısının içine yerleştirilir ve kapsayıcıyı tek bir varlık olarak dağıtmanıza olanak tanır.
Bu makale size bu iki açık kaynak teknolojisini etkin bir şekilde nasıl kullanacağınızı öğretiyor. Ayrıca Redis kümelerini Docker kapsayıcıları içinde çalıştırmanın neden hayati önem taşıdığına ve Redis kümelerini sanal makinelerde veya çıplak donanım sunucularında çalıştırmaya kıyasla bunu yapmanın avantaj ve faydalarına da değiniyor.
Redis'in Çeşitli Kullanımları
Redis'in çeşitli avantajları vardır. En popüler kullanımları şunları içerir:
- Dağıtılmış, anahtar-değer veritabanı önbelleği
- Mesaj komisyoncusu
- Kalıcı nesne önbelleğe alma sunucusu
Ayrıca Redis, birden çok veri türünü ve yapısını destekleyerek uygulamalar için hem birincil hem de ikincil veritabanı katmanı olarak kullanıma uygun hale getirir. Ayrıca listeleri, akışları, karmaları, kümeleri vb. destekler.
Ancak, Redis'in faydalarını kapsayıcı hale getirerek daha da ileriye taşıyabilirsiniz.
Redis, Bir Konteynerin İçinde En İyisidir
Redis, bir milyardan fazla indirme ile Docker kayıt defterindeki en popüler Docker görüntülerinden biridir. Redis uygulamalarını kapsayıcı hale getirmenin nedeni, en yaygın Redis kullanım durumları için Docker'ın avantajlarından ve topluluk desteğinden yararlanmaktır.
Redis Docker görüntüsü, net belgeler oluşturan ve sürdüren açık kaynaklı bir topluluğa sahiptir. Üstüne üstlük, Docker son derece güvenilirdir ve kolay kullanım ve esneklik sağlar.
Kullanım kolaylığı
Docker, kapsayıcıların içinde çalışan hem uygulamalar hem de hizmetler için ortamları izole eder. İzolasyon, Docker içinde Redis uygulamalarının geliştirilmesini ve çalıştırılmasını kolaylaştıran ana işletim sisteminden bağımsız olarak çalışan Redis görüntülerini paketleyebileceğiniz, oluşturabileceğiniz ve gönderebileceğiniz anlamına gelir. Ayrıca Docker Desktop, özellikle büyük ekipler için yararlı olan tutarlı bir yerel geliştirme ortamı kurmayı basitleştirir.
Güvenlik:
Bir kapsayıcı içinde Redis ile güvenlik açıklarını tarayabilirsiniz. Docker, Docker görüntülerinin güvenliğine görünürlük sağlayan bir araç olan Snyk'i kullanır. Docker kapsayıcılarını tarar ve bozuk görüntüler olması durumunda ayrıntılar ve düzeltme sağlar. Docker ayrıca, henüz deneysel olmasına rağmen, kapsayıcı görüntüleri oluştururken kullanılan tüm bağımlılıkları taramak için bir yazılım ürün reçetesi (SBOM) oluşturabilir.
Esneklik
Docker, çoğu Unix tabanlı ve Windows işletim sistemi ve uygulamasında kullanılabilir. Tüm sistemlerle çalışmasını sağlamak için yazılımı ortamından yalıtmak için kapsayıcıları kullandığınız için, Redis uygulamaları ve hizmetleri altyapıya rağmen her zaman çalışır.
Güvenilirlik
Docker, kapsayıcılı herhangi bir iş yükünü herhangi bir ortamda güvenilir bir şekilde çalıştırmanıza olanak tanır. Redis, Docker'da güvenilirdir, çünkü Docker kapları düzenli olarak kapsayıcı görüntüsünün anlık görüntülerini alır ve kötü veya bozuk bir veritabanı durumunda bu anlık görüntülere geri dönmenize olanak tanır. Redis veritabanı dosyasını içeren bir dizini kapsayıcının içine bağlayarak da bir Docker birimi oluşturabilirsiniz.
Bir Docker birimi, kapsayıcıyı her türlü kazara veri kaybına karşı korumaya yardımcı olur. Ancak, bir uyarı, Docker birimlerinin görüntü anlık görüntülerini içermemesidir. Redis veritabanı dosyanızdaki verileri periyodik olarak manuel olarak kaydetmeniz veya yedeklemeniz gerekir.
Docker ile Redis Nasıl Kullanılır
Redis mağazanızı bir Docker kapsayıcısının içine yerleştirmek için hedef ortamda Docker'a sahip olmanız gerekir. Aşağıdaki talimatlar Docker'ı Windows'a nasıl yükleyeceğinizi gösterir.
Unix veya Unix tabanlı bir işletim sistemi için Docker web sitesindeki bir kılavuzu takip edebilirsiniz. Yükleme ve yapılandırmadan sonra, Docker kapsayıcınızın içinde bir ağ oluşturabilirsiniz. Ardından Redis'i kurabilir ve bir veritabanı oluşturabilirsiniz. Son olarak Redis veritabanınız üzerinde işlemler gerçekleştirebilirsiniz.
Öncelikle işletim sisteminize Docker'ı kurun. İsteğe bağlı olarak Docker Hub'a gidin ve bir hesap oluşturun. Resimlerinizi oluşturmak ve yayınlamak için bir hesaba ihtiyacınız var.
Bir hesap oluşturduktan sonra, Docker Hub'da oturum açın ve işletim sisteminizin en son Docker Desktop sürümünü indirin.
Kurulum prosedüründen sonra, Docker Engine'in çalışmaya hazır olup olmadığını görmek için terminal pencerenize gidin ve aşağıdaki komutu girin:
docker --version
Ardından şunu yazın: docker-compose --version
.
Compose, uygulama hizmetlerini yapılandırmak için kullandığınız YAML dosyalarını kullanarak çok kapsayıcılı Docker uygulamalarını tanımlamaya ve çalıştırmaya yönelik bir araçtır.
Aşağıdaki kodu kullanarak Docker Engine'in çalışır durumda olduğunu doğrulamak için Dockerized Redis çalıştırabilirsiniz. Bu örnek, Redis görüntüsünü Docker Hub'dan çalıştırır ve onu my-redis-container olarak adlandırır.
docker run --name my-redis-container -d redis
Görüntüye yerel olarak sahip olmadığınız için Docker, Redis görüntüsünü Docker Hub'dan çeker.
Artık Redis görüntüsünü çektiğini doğrulamak için Docker Desktop'ı açabilirsiniz. Panoda, sol taraftaki panelde Görüntüler'e tıklayın.
Artık bir ağ oluşturabilirsiniz. Docker sürücüsünün bir Docker ağı oluşturmak için köprüyü veya yer paylaşımlı yerleşik ağ sürücülerini kullandığını unutmayın. Ayrıca üçüncü taraf bir ağ sürücüsü yükleyebilir ve kullanabilirsiniz.
Aradaki fark, köprü ağlarının tek bir Docker Engine kurulumunda izole edilmiş olması, bindirme ağlarının ise her biri bir motor çalıştıran birden fazla Docker ana bilgisayarına yayılmasıdır.
Tip:
docker network create -d bridge kinsta-demo-network
Varsayılan olarak herhangi bir sürücü belirtmezseniz Docker, Docker Engine'i yüklediğinizde köprü sürücüsünü otomatik olarak oluşturduğundan, yeni bir ağ oluşturmak için köprü sürücüsünü kullanır. Ancak, Docker run komutuyla bir Docker kapsayıcısı çalıştırırsanız bu ağı kullanmaz.
Artık bir ağınız olduğuna göre sıra Redis'i Docker kapsayıcısının içine yüklemekte. Bunu yapmak için şunu yazın: docker pull redis
.
Redis görüntüsünün doğru yüklendiğini doğrulamak için aşağıdaki komutlardan birini çalıştırın:
docker images
docker image ls
Ardından, Redis kapsayıcısını oluşturup başlatırsınız. Bunu yapmak için aşağıdaki komutu çalıştırın:
docker run -it –name dev_kinsta_redis_container -d redis
Şimdi Redis'in kapsayıcıda çalıştığını doğrulayın. Bunu yapmak için şunu yazın: docker ps
.
Artık Docker kapsayıcınızın çalışır durumda olduğunu onayladığınıza göre, kapsayıcıyı ağa ekleyebilirsiniz. Tür: docker network connect
.
Her şeyin beklendiği gibi çalıştığı bir sonraki adım, Docker içinde çalışan Redis sunucunuzun bağlantıları kabul etmeye hazır olduğunu doğrulamaktır. Bunu yapmak için docker logs
kullanın.
Ardından, sunucuda komutları çalıştırmak için Redis kapsayıcısına bağlanmak için bir yola ihtiyacınız olduğundan bir veritabanı oluşturmalısınız. Bunu yapmak için şunu yazın: docker exec -it bash
. Kapsayıcı adını ve kapsayıcı kimliğini birbirinin yerine kullanabilirsiniz.
Kapsayıcıda, komutları çalıştırmak için CLI'yi kullanın. Redis'in Docker ana bilgisayarlarını otomatik olarak yüklediğini unutmayın. Redis-CLI'yi kullanmak için şunu yazın: redis-cli
.
Bu, sizi yerel ana bilgisayardaki Redis için varsayılan bağlantı noktasına bağlar. Yazın: ping
ve yanıt pong
olmalıdır.
Ardından, select
yazarak Redis sunucunuz içinde bir veritabanı seçin. Varsayılan veritabanı 0
olsa da db 1
seçin.
Ardından, veritabanına veri ekleyin. Redis SET
komutunu kullanın. Bunu yapmak için SET <key> <value>
yazın.
Örneğin:
SET mykey "Hello"
Aynı anahtarı almak için şunu yazın:
get myKey
Anahtarın değerini almak için get
çalıştırın. Bu, değeri döndürür. Ardından, MONITOR
yazarak Redis veritabanınızı izleyin.
Son olarak, CLI'den çıkarak Redis sunucusunu durdurun. CLI ve Redis'ten çıkmak için iki kez exit
yazın.
Son olarak, docker stop
yazarak Redis kapsayıcısının çalışmasını durdurun.
DevKinsta ile Redis
DevKinsta, bir WordPress sitesini bir Redis veritabanına bağlamanıza izin verir. DevKinsta ile Redis eklentisi, birkaç sayfa yüklemesinde verileri sürdürmek için sorunsuz bir şekilde bir nesne önbelleği olarak çalışır. Bu, Redis eklentisini kullanarak MySQL veritabanını sürekli olarak sorgulamak yerine nesneleri yeniden kullanmak için önbelleği kullanabileceğiniz anlamına gelir.
DevKinsta'yı indirip kurduktan sonra, bir kapsayıcı içinde yerel ortam dosyaları oluşturmak için kullandığı Docker Desktop'ı bir bağımlılık olarak kurun. Bu kurulumla Redis eklentisini Devkinsta'da yapılandırabilirsiniz.
Bu nedenle, DevKinsta için Redis eklentisi ikincil bir kaynak olarak kullanılabilir, birincil veritabanı üzerindeki yükü azaltır, yanıt sürelerini artırır ve uygulamanın daha hızlı çalışmasını sağlar.
Bu, uygulamanın daha fazla yük işlemesi ve verimli bir şekilde ölçeklenmesi anlamına gelir. Web sitenizde Redis eklentisini kullanmak için bu gönderiye göz atın.
Özet
Redis'i bir Docker kapsayıcısında çalıştırmanın birçok avantajı vardır. Uygulamalarınız için korumalı bir ortam sunar, böylece artık uygulamalarınızı dağıttığınız platformla ilgilenmenize gerek kalmaz. Ayrıca Docker, kullanım kolaylığı, esneklik ve yüksek güvenilirlik sağlar.
Güvenlikle ilgili olarak, Docker görüntülerinin güvenliğine görünürlük sağlayan bir araç olan Synk ile güvenlik açıklarını kontrol edebilir ve tarayabilirsiniz. Esneklikle ilgili olarak Docker, çoğu Unix tabanlı ve Windows işletim sistemi ve uygulamasında çalışır. Bu esneklik, dockerize veya kapsayıcılı uygulamaların veya hizmetlerin her zaman işletim sisteminden bağımsız olarak çalıştığı anlamına gelir.
Docker'ı ve Redis eklentisini, başlattığınızda yerleşik bir WordPress sitesini yerel olarak döndüren DevKinsta ile kullanmak kolaydır. Redis'in gücünü Docker'da bugün elde etmek için DevKinsta ve Redis eklentisine göz atın.