Önkoşullar
Takip etmek için aşağıdakilere sahip olduğunuzdan emin olun:
- Docker yerel olarak yüklü olmalı
- Docker compose yerel olarak yüklü olmalı
- 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.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.