Takip et

Docker 1-Click Kurulumu ile Dijital Dönüşümünüzü Hızlandırın: DigitalOcean Üzerinde Adım Adım Rehber

Docker 1-Click Kurulumu ile Dijital Dönüşümünüzü Hızlandırın: DigitalOcean Üzerinde Adım Adım Rehber DigitalOcean, bulut tabanlı altyap

Docker 1-Click Kurulumu ile Dijital Dönüşümünüzü Hızlandırın: DigitalOcean Üzerinde Adım Adım Rehber

DigitalOcean, bulut tabanlı altyapı hizmetleri sunan popüler bir platformdur ve özellikle geliştiriciler arasında basitliği, esnekliği ve uygun fiyatlı çözümleriyle tanınır. Docker ise uygulama geliştirme, dağıtma ve çalıştırma süreçlerini konteynerler aracılığıyla standartlaştıran açık kaynaklı bir platformdur. Bu iki güçlü aracın birleşimi, modern uygulamaların hızlı ve verimli bir şekilde dağıtılması için mükemmel bir zemin hazırlar. Özellikle DigitalOcean’ın sunduğu “1-Click Install” (Tek Tık Kurulum) özelliği, Docker’ı sunucunuza kurma sürecini inanılmaz derecede basitleştirerek, teknik bilgi seviyesi ne olursa olsun herkesin dakikalar içinde bir Docker ortamı kurmasına olanak tanır.

Bu makalede, DigitalOcean üzerinde Docker 1-Click kurulumunun ne olduğunu, neden bu kadar faydalı olduğunu ve adım adım nasıl kullanılacağını detaylı bir şekilde inceleyeceğiz. Ayrıca, kurulum sonrası temel Docker işlemlerini, en iyi uygulama yöntemlerini ve sık karşılaşılan sorunlara çözüm önerilerini de ele alarak, bu güçlü kombinasyonu verimli bir şekilde kullanmanız için kapsamlı bir rehber sunacağız. İster deneyimli bir DevOps mühendisi olun, ister Docker ve bulut dünyasına yeni adım atan bir geliştirici, bu rehber DigitalOcean’daki Docker deneyiminizi baştan sona optimize etmenize yardımcı olacaktır.

Neden DigitalOcean ve Docker 1-Click Kurulumu?

DigitalOcean ve Docker’ın birleşimi, modern uygulama geliştirme ve dağıtım süreçleri için bir dizi önemli avantaj sunar. Bu avantajlar, özellikle “1-Click Install” özelliği sayesinde yeni başlayanlar veya hızlı prototipleme ihtiyacı olanlar için daha da belirgin hale gelir.

DigitalOcean’ın Sunduğu Avantajlar

DigitalOcean, basit ve kullanıcı dostu arayüzü, uygun fiyatlandırma modelleri ve geliştirici odaklı araçlarıyla öne çıkar. “Droplet” adı verilen sanal sunucuları, birkaç tıklamayla kolayca oluşturulabilir ve yönetilebilir. SSD tabanlı depolama, yüksek performanslı CPU’lar ve geniş bant genişliği gibi özellikler, uygulamalarınızın hızlı ve güvenilir bir şekilde çalışmasını sağlar. Ayrıca, entegre güvenlik duvarları, yedekleme seçenekleri ve izleme araçları gibi ek hizmetler, altyapınızın güvenliğini ve sürekliliğini sağlamaya yardımcı olur.

Docker’ın Temel Faydaları

Docker, uygulamaları ve bağımlılıklarını izole edilmiş bir ortamda, yani “konteynerler” içinde paketleyerek çalıştırır. Bu yaklaşım, “benim makinemde çalışıyordu” sorununu ortadan kaldırır ve geliştirme, test ve üretim ortamları arasında tutarlılık sağlar. Docker’ın başlıca faydaları şunlardır:

* Tutarlılık: Uygulama, bağımlılıkları ve yapılandırması tek bir pakette birleştiği için, her ortamda aynı şekilde çalışması garanti edilir.
* İzolasyon: Konteynerler birbirinden ve ana sistemden izole edilmiş olarak çalışır, bu da güvenlik ve kaynak yönetimi açısından avantaj sağlar.
* Taşınabilirlik: Bir konteyner, herhangi bir Docker destekli sistemde sorunsuzca çalıştırılabilir.
* Verimlilik: Sanal makinelere göre daha hafif ve hızlı başlar, bu da kaynak kullanımını optimize eder.
* Ölçeklenebilirlik: Uygulamaları kolayca ölçeklendirmek için aynı konteynerin birden fazla kopyası hızlıca oluşturulabilir.

1-Click Kurulumunun Önemi

Docker’ı manuel olarak kurmak, işletim sistemi bağımlılıkları, paket yöneticileri ve yapılandırma adımları gerektiren teknik bir süreç olabilir. Bu süreç, özellikle Linux komut satırına aşina olmayanlar için göz korkutucu olabilir. DigitalOcean’ın Docker 1-Click kurulumu, bu süreci tamamen otomatikleştirerek aşağıdaki avantajları sunar:

* Hız: Dakikalar içinde çalışan bir Docker ortamına sahip olursunuz. Manuel kurulum saatler sürebilirken, 1-Click ile bu süre birkaç dakikaya iner.
* Basitlik: Karmaşık komutlar veya yapılandırma dosyalarıyla uğraşmanıza gerek kalmaz. Sadece birkaç tıklama yeterlidir.
* Güvenilirlik: DigitalOcean tarafından önceden yapılandırılmış ve test edilmiş bir ortam elde edersiniz, bu da potansiyel hataları minimize eder.
* Güncel Sürümler: Genellikle Docker’ın ve Docker Compose’un en son kararlı sürümleriyle birlikte gelir, bu da en yeni özelliklere ve güvenlik yamalarına erişmenizi sağlar.

Bu avantajlar, DigitalOcean’ı Docker tabanlı projeler için ideal bir başlangıç noktası haline getirir. Şimdi, bu kurulumun nasıl yapılacağına dair adım adım rehbere geçelim.

DigitalOcean Üzerinde Docker 1-Click Kurulumu: Adım Adım Rehber

DigitalOcean’da Docker’ı kurmak, birkaç basit adımı takip ederek dakikalar içinde tamamlanabilir. İşte bu sürecin detaylı rehberi:

1. DigitalOcean Hesabı Oluşturma ve Giriş Yapma

Öncelikle, bir DigitalOcean hesabınızın olması gerekmektedir. Eğer yoksa, DigitalOcean web sitesine giderek kolayca bir hesap oluşturabilirsiniz. Hesap oluşturma genellikle bir e-posta adresi, şifre ve ödeme bilgileri (kredi kartı veya PayPal) gerektirir. Yeni kullanıcılara genellikle deneme kredisi sunulur, bu da Docker ortamınızı ücretsiz olarak denemeniz için harika bir fırsattır. Hesabınız hazır olduğunda, DigitalOcean kontrol paneline giriş yapın.

2. Yeni Bir Droplet Oluşturma

Kontrol panelinde “Create” (Oluştur) butonuna tıklayın ve açılır menüden “Droplets” (Dropletler) seçeneğini belirleyin. Bu, yeni bir sanal sunucu oluşturma sihirbazını başlatacaktır.

a. Bir Görüntü (Image) Seçme

Bu adımda, Droplet’in işletim sistemi ve önceden yüklenmiş yazılımlarını içeren görüntüyü seçmeniz gerekir.
* “Choose an image” (Bir görüntü seçin) bölümünde, sol taraftaki menüden “Marketplace” (Pazar Yeri) sekmesini seçin.
* Arama çubuğuna “Docker” yazın veya listeden “Docker” uygulamasını bulun ve seçin. Bu, Ubuntu üzerinde Docker ve Docker Compose’un önceden yüklü olduğu bir görüntü seçmenizi sağlayacaktır.

b. Bir Plan Seçme

Droplet’iniz için bir donanım planı seçmeniz gerekecek. Bu, CPU, RAM, SSD depolama ve aylık maliyeti belirler.
* Uygulamanızın ihtiyaçlarına göre bir plan seçin. Basit bir test ortamı veya küçük bir uygulama için “Basic” (Temel) kategorisindeki en düşük planlar (örneğin, 1 CPU, 1 GB RAM) yeterli olabilir. Ancak, daha yoğun uygulamalar veya birden fazla konteyner çalıştırmayı planlıyorsanız, “General Purpose” (Genel Amaçlı) veya daha yüksek “Basic” planları tercih etmek daha iyi performans sağlayacaktır. Unutmayın, RAM miktarı Docker konteynerlerinin verimli çalışması için kritik öneme sahiptir.

c. Veri Merkezi Bölgesi Seçme

Droplet’inizin fiziksel olarak nerede barındırılacağını seçmelisiniz.
* Kullanıcılarınızın veya uygulamanızın hedef kitlesinin coğrafi konumuna en yakın bölgeyi seçmek, gecikmeyi (latency) azaltır ve daha iyi performans sunar. Örneğin, Türkiye’den erişim için Frankfurt veya Amsterdam gibi Avrupa bölgeleri genellikle iyi bir seçimdir.

d. Kimlik Doğrulama Yöntemi Seçme

Droplet’inize SSH ile bağlanmak için bir kimlik doğrulama yöntemi seçmelisiniz.
* SSH Anahtarları (Önerilen): Bu, en güvenli ve önerilen yöntemdir. Daha önce bir SSH anahtarı oluşturup DigitalOcean’a yüklediyseniz, buradan seçebilirsiniz. Eğer SSH anahtarınız yoksa, “New SSH Key” (Yeni SSH Anahtarı) butonuna tıklayarak genel anahtarınızı buraya yapıştırabilirsiniz. SSH anahtarları oluşturma ve kullanma hakkında temel bilgiye sahip değilseniz, DigitalOcean’ın veya diğer kaynakların ilgili rehberlerine başvurmanız önemlidir.
* Parola: SSH anahtarı kullanmak istemiyorsanız, Droplet’inize bağlanmak için bir parola belirleyebilirsiniz. Ancak, parola tabanlı kimlik doğrulama, SSH anahtarlarına göre daha az güvenli kabul edilir ve genellikle önerilmez. Güçlü ve karmaşık bir parola seçtiğinizden emin olun.

e. Ek Seçenekler ve Sonlandırma

* Hostname: Droplet’inize kolayca tanıyabileceğiniz bir isim verin (örneğin, docker-sunucu-1).
* Tags (Etiketler): İsteğe bağlı olarak Droplet’inizi kategorize etmek için etiketler ekleyebilirsiniz.
* Monitoring (İzleme): DigitalOcean’ın ücretsiz izleme özelliğini etkin bırakmanız önerilir.
* Backups (Yedeklemeler): Ücretli bir eklenti olan otomatik yedeklemeleri etkinleştirebilirsiniz. Üretim ortamları için şiddetle tavsiye edilir.
* VPC Network: Eğer özel bir ağ yapılandırmanız varsa seçebilirsiniz.

Tüm ayarları gözden geçirdikten sonra “Create Droplet” (Droplet Oluştur) butonuna tıklayın. DigitalOcean, Droplet’inizi oluşturmaya başlayacak ve bu işlem genellikle bir dakika kadar sürer.

3. Droplet’e SSH ile Bağlanma

Droplet oluşturulduktan sonra, kontrol panelinizde Droplet’inizin IP adresini göreceksiniz. Bu IP adresini kullanarak SSH aracılığıyla sunucunuza bağlanacaksınız.

* Linux/macOS: Terminali açın ve aşağıdaki komutu kullanın (YOUR_DROPLET_IP yerine Droplet’inizin IP adresini yazın):

ssh root@YOUR_DROPLET_IP

İlk bağlantınızda, sunucunun parmak izini kabul etmeniz istenecektir. “yes” yazıp Enter tuşuna basın. Eğer SSH anahtarı kullandıysanız, doğrudan bağlanacaksınız. Parola kullandıysanız, belirlediğiniz parolayı girmeniz istenecektir.

* Windows: PuTTY gibi bir SSH istemcisi kullanmanız gerekir. PuTTY’yi açın, “Host Name (or IP address)” alanına Droplet’inizin IP adresini girin ve “Open” butonuna tıklayın. Kullanıcı adı olarak “root” girin ve eğer parola kullandıysanız parolanızı girin.

Başarılı bir şekilde bağlandığınızda, sunucunuzun komut satırı arayüzünü (CLI) göreceksiniz.

4. Docker Kurulumunu Doğrulama

Droplet’e bağlandıktan sonra, Docker ve Docker Compose’un doğru bir şekilde kurulduğundan emin olmak için birkaç kontrol yapalım:

* Docker Sürümünü Kontrol Etme:

docker --version

Bu komut, yüklü Docker Engine sürümünü göstermelidir (örneğin, Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1).

* Docker Compose Sürümünü Kontrol Etme:

docker-compose --version

Bu komut, yüklü Docker Compose sürümünü göstermelidir (örneğin, Docker Compose version v2.17.2).

* Docker Servis Durumunu Kontrol Etme:

sudo systemctl status docker

Bu komut, Docker servisinin çalışıp çalışmadığını gösterir. Active: active (running) ifadesini görmelisiniz. Çıkmak için q tuşuna basın.

* Bir Test Konteyneri Çalıştırma:
Her şeyin yolunda gittiğinden emin olmak için hello-world konteynerini çalıştırın:

docker run hello-world

Bu komut, Docker’ın çalıştığını ve konteynerleri doğru bir şekilde indirebildiğini ve çalıştırabildiğini gösteren bir mesaj çıktısı vermelidir.

5. Docker Kullanıcısı Oluşturma (İsteğe Bağlı ama Şiddetle Tavsiye Edilir)

Varsayılan olarak, Docker komutlarını çalıştırmak için root kullanıcısı olmanız veya sudo kullanmanız gerekir. Güvenlik ve kolaylık açısından, Docker komutlarını sudo olmadan çalıştırabilen, ayrı bir standart kullanıcı oluşturmanız şiddetle tavsiye edilir.

* Yeni bir kullanıcı oluşturun (kullanici_adi yerine istediğiniz bir isim verin):

sudo adduser kullanici_adi

Bu komut sizden yeni kullanıcı için bir parola belirlemenizi ve bazı isteğe bağlı bilgileri girmenizi isteyecektir.

* Yeni kullanıcıyı docker grubuna ekleyin:

sudo usermod -aG docker kullanici_adi

Bu komut, yeni oluşturduğunuz kullanıcıya Docker daemon’ına erişim izni verir.

* Yeni kullanıcıya geçiş yapın:

su - kullanici_adi

Bu komutla yeni kullanıcınız olarak oturum açmış olacaksınız.

* Docker komutlarını sudo olmadan test edin:

docker run hello-world

Bu komutun sudo kullanmadan başarılı bir şekilde çalışması gerekir.

Artık DigitalOcean Droplet’iniz üzerinde çalışan, güvenli ve yapılandırılmış bir Docker ortamına sahipsiniz! Bir sonraki adım, bu ortamı kullanarak uygulamalarınızı konteynerler içinde çalıştırmaya başlamaktır.

Temel Docker İşlemleri

DigitalOcean üzerindeki Docker ortamınız hazır olduğuna göre, şimdi temel Docker komutlarını ve işlemlerini öğrenmenin zamanı geldi. Bu bölümde, imajlar, konteynerler ve Docker Compose ile nasıl çalışılacağını ele alacağız.

1. Docker İmajları ile Çalışma

Docker imajları, uygulamalarınızı çalıştırmak için gerekli tüm kodları, çalışma zamanlarını, sistem araçlarını, kütüphaneleri ve ayarları içeren hafif, bağımsız ve yürütülebilir yazılım paketleridir.

* İmaj Çekme (Pull): Docker Hub gibi bir imaj kayıt defterinden bir imajı yerel makinenize indirmek için kullanılır.

docker pull ubuntu:latest
    docker pull nginx

* Yerel İmajları Listeleme: Yerel olarak indirilmiş tüm Docker imajlarını görmek için.

docker images

* İmaj Silme: Artık ihtiyacınız olmayan bir imajı yerel depolama alanınızdan silmek için. İmajı silmeden önce, o imajdan oluşturulmuş çalışan veya durdurulmuş konteynerlerin olmadığından emin olun.

docker rmi ubuntu:latest

veya imaj ID’si ile:

docker rmi [IMAGE_ID]

2. Docker Konteynerları ile Çalışma

Bir Docker konteyneri, bir Docker imajının çalıştırılabilir bir örneğidir. İmajlar pasif şablonlarken, konteynerler canlı, çalışan birimlerdir.

* Konteyner Çalıştırma (Run): Bir imajdan yeni bir konteyner oluşturur ve başlatır.

docker run -d -p 80:80 --name my-nginx nginx

* -d: Konteyneri arka planda (detached mode) çalıştırır.
* -p 80:80: Konteynerin 80 numaralı portunu host makinenin 80 numaralı portuna eşler. Böylece Droplet’inizin IP adresine web tarayıcınızdan eriştiğinizde Nginx’i görebilirsiniz.
* --name my-nginx: Konteynere okunabilir bir isim verir.
* nginx: Çalıştırılacak imajın adıdır.

* Çalışan Konteynerleri Listeleme: Şu anda çalışan tüm konteynerleri görmek için.

docker ps

Tüm (çalışan ve durdurulmuş) konteynerleri görmek için -a bayrağını kullanın: docker ps -a

* Konteyneri Durdurma: Çalışan bir konteyneri durdurmak için.

docker stop my-nginx

veya konteyner ID’si ile:

docker stop [CONTAINER_ID]

* Konteyneri Başlatma: Durdurulmuş bir konteyneri yeniden başlatmak için.

docker start my-nginx

* Konteyneri Yeniden Başlatma: Bir konteyneri durdurup tekrar başlatmak için.

docker restart my-nginx

* Konteyneri Silme: Durdurulmuş bir konteyneri sistemden tamamen kaldırmak için. Çalışan bir konteyneri silmek için önce durdurmanız gerekir.

docker rm my-nginx

* Konteyner Günlüklerini Görüntüleme: Bir konteynerin stdout/stderr çıktılarını görmek için.

docker logs my-nginx

Gerçek zamanlı günlükleri görmek için -f (follow) bayrağını kullanın: docker logs -f my-nginx

* Konteynere Bağlanma (Exec): Çalışan bir konteyner içinde komut çalıştırmak veya bir shell oturumu açmak için.

docker exec -it my-nginx bash

* -i: İnteraktif modu açık tutar.
* -t: Bir sahte TTY (terminal) atar.
* bash: Konteyner içinde çalıştırılacak komuttur (genellikle bir shell).
Konteynerden çıkmak için exit yazın.

3. Docker Compose Kullanımı

Docker Compose, birden fazla Docker konteynerini içeren uygulamaları tanımlamak ve çalıştırmak için bir araçtır. Tek bir YAML dosyası kullanarak tüm uygulama hizmetlerinizi yapılandırabilir ve tek bir komutla başlatabilirsiniz.

a. Docker Compose Dosyası Oluşturma

Bir örnek docker-compose.yml dosyası oluşturalım. Bu örnekte, basit bir Nginx web sunucusu ve statik bir HTML sayfasını barındıracağız.

1. Yeni bir dizin oluşturun ve içine girin:

mkdir my-web-app
    cd my-web-app

2. index.html adında basit bir HTML dosyası oluşturun:

echo "" > index.html

3. docker-compose.yml adında bir dosya oluşturun ve aşağıdaki içeriği ekleyin:

version: '3.8'
    services:
      web:
        image: nginx:latest
        ports:
          - "80:80"
        volumes:
          - ./index.html:/usr/share/nginx/html/index.html
        restart: always

* version: Compose dosyasının sürümünü belirtir.
* services: Uygulamanızın servislerini tanımlar. Burada tek bir servisimiz var: web.
* image: Bu servis için kullanılacak Docker imajı.
* ports: Host ve konteyner arasındaki port eşleşmesi.
* volumes: Host makinedeki index.html dosyasını konteyner içindeki Nginx’in varsayılan HTML dizinine bağlar.
* restart: always: Konteynerin her zaman yeniden başlatılmasını sağlar (örneğin, sunucu yeniden başlatıldığında veya konteyner çöktüğünde).

b. Docker Compose Uygulamasını Çalıştırma

docker-compose.yml dosyasının bulunduğu dizinde aşağıdaki komutu çalıştırın:

docker-compose up -d

* up: Servisleri oluşturur ve başlatır.
* -d: Servisleri arka planda çalıştırır.

Bu komut, Nginx imajını çekecek (eğer yerel olarak yoksa), konteyneri oluşturacak ve başlatacaktır. Şimdi Droplet’inizin IP adresini web tarayıcınızda açtığınızda “Merhaba DigitalOcean ve Docker Compose!” mesajını görmelisiniz.

c. Docker Compose Servislerini Listeleme

Çalışan Compose servislerini görmek için:

docker-compose ps
d. Docker Compose Uygulamasını Durdurma ve Silme

Uygulamanızın tüm servislerini durdurmak ve oluşturulan ağları/volümleri kaldırmak için:

docker-compose down

Bu komut, docker-compose.yml dosyasında tanımlanan tüm konteynerleri durdurur ve siler.

Bu temel komutlar, Docker ortamınızda uygulamalarınızı yönetmek için size sağlam bir temel sağlayacaktır. İlerleyen bölümlerde, bu bilgileri daha da geliştirerek en iyi uygulamalara ve sorun giderme tekniklerine odaklanacağız.

En İyi Uygulamalar ve Sonraki Adımlar

Docker ve DigitalOcean ile çalışırken, güvenliği, performansı ve sürdürülebilirliği artırmak için bazı en iyi uygulamaları benimsemek önemlidir. Ayrıca, projenizi bir sonraki seviyeye taşımak için düşünebileceğiniz bazı ileri düzey adımlar da bulunmaktadır.

1. Güvenlik Uygulamaları

Güvenlik, bulut tabanlı bir ortamda her zaman öncelikli olmalıdır.

* DigitalOcean Güvenlik Duvarı (Firewall): Droplet’iniz için DigitalOcean’ın yerleşik güvenlik duvarını kullanın. Yalnızca gerekli portları (örneğin, SSH için 22, web sunucusu için 80/443) açarak Droplet’inizi dışarıdan gelebilecek potansiyel tehditlere karşı koruyun.
* İşletim Sistemi Güvenlik Duvarı (UFW): Droplet içinde de UFW (Uncomplicated Firewall) gibi bir yazılım güvenlik duvarı kullanabilirsiniz. Bu, konteynerlerinizin doğrudan internete maruz kalmasını önlemek için ek bir katman sağlar.
* Düzenli Güncellemeler: Droplet’inizin işletim sistemini ve Docker’ı düzenli olarak güncelleyin.

sudo apt update
    sudo apt upgrade -y
    sudo apt autoremove -y

Docker imajlarınızı da düzenli olarak güncelleyerek bilinen güvenlik açıklarından korunmuş olursunuz.
* Non-Root Kullanıcı: Docker komutlarını root kullanıcısı yerine, daha önce oluşturduğumuz gibi docker grubuna eklenmiş standart bir kullanıcı ile çalıştırmak, potansiyel güvenlik risklerini azaltır.
* Güçlü SSH Anahtarları/Parolalar: SSH bağlantılarınız için her zaman güçlü, karmaşık parolalar veya tercih edilen SSH anahtarları kullanın.
* Güvenilir İmajlar Kullanın: Docker Hub’dan imaj çekerken, resmi imajları veya güvenilir kaynaklardan gelen imajları tercih edin. Bilinmeyen veya doğrulanmamış imajlar güvenlik riskleri taşıyabilir.

2. Veri Kalıcılığı

Konteynerler doğası gereği geçicidir. Bir konteyner silindiğinde, içindeki tüm veriler de kaybolur. Verilerinizin kalıcı olmasını sağlamak için Docker Volumes veya Bind Mounts kullanmalısınız.

* Docker Volumes: Docker tarafından yönetilen özel depolama alanlarıdır. Konteynerler silinse bile veriler kalıcı olur ve farklı konteynerler arasında paylaşılabilir.

services:
      db:
        image: postgres
        volumes:
          - db_data:/var/lib/postgresql/data
    volumes:
      db_data:

* Bind Mounts: Host makinedeki bir dizini veya dosyayı doğrudan konteyner içine bağlar. Geliştirme sırasında kaynak kodunu konteynere bağlamak için kullanışlıdır. (Örneğimizdeki index.html bağlama gibi).

3. Ortam Değişkenleri ve Gizli Bilgiler

Veritabanı parolaları, API anahtarları gibi hassas bilgileri Docker imajlarınızın içine gömmekten kaçının. Bunun yerine, ortam değişkenleri veya Docker Secrets gibi yöntemleri kullanın.

* Ortam Değişkenleri: .env dosyaları ile Docker Compose kullanırken veya docker run -e KEY=VALUE ile ortam değişkenlerini enjekte edebilirsiniz.
* Docker Secrets: Üretim ortamları için daha güvenli bir seçenek olan Docker Secrets, hassas verileri şifreli bir şekilde yönetmenizi sağlar (genellikle Docker Swarm veya Kubernetes ile kullanılır).

4. İzleme ve Günlük Kaydı

Uygulamalarınızın ve altyapınızın sağlığını anlamak için izleme ve günlük kaydı hayati öneme sahiptir.

* DigitalOcean Monitoring: DigitalOcean, Droplet’lerinizin CPU, bellek, disk ve ağ kullanımı gibi temel metriklerini izlemek için ücretsiz bir hizmet sunar.
* Docker Logging Drivers: Docker, konteyner günlüklerini farklı hedeflere (örneğin, json-file, syslog, fluentd) göndermek için çeşitli günlük sürücüleri sunar. Merkezi bir günlük yönetimi sistemi (ELK Stack, Grafana Loki) kurmayı düşünebilirsiniz.

5. Sürekli Entegrasyon/Sürekli Dağıtım (CI/CD)

Uygulama geliştirme sürecinizi otomatikleştirerek verimliliği artırın.

* CI/CD Araçları: GitLab CI/CD, GitHub Actions, Jenkins veya CircleCI gibi araçları kullanarak kod değişikliklerini otomatik olarak test edebilir, Docker imajları oluşturabilir ve bunları DigitalOcean Droplet’inize dağıtabilirsiniz.

6. Yedekleme Stratejileri

Veri kaybını önlemek için düzenli yedekleme stratejileri oluşturun.

* DigitalOcean Yedeklemeleri: DigitalOcean’ın otomatik Droplet yedeklemeleri, tam sunucu anlık görüntüleri sağlar.
* Docker Volume Yedeklemeleri: Sadece kritik verilerinizi içeren Docker Volume’ları düzenli olarak yedeklemek, daha esnek bir yedekleme stratejisi sunar.

7. Ölçeklendirme ve Orkestrasyon

Uygulamanız büyüdükçe, birden fazla Droplet üzerinde birden fazla konteyneri yönetme ihtiyacınız doğabilir.

* Docker Swarm: Docker’ın yerleşik konteyner orkestrasyon aracıdır. Birden fazla Docker host’unu tek bir sanal host gibi yönetmenizi sağlar.
* Kubernetes: Daha karmaşık ve büyük ölçekli uygulamalar için endüstri standardı bir konteyner orkestrasyon platformudur. DigitalOcean, yönetilen Kubernetes hizmeti (DOKS) sunar.

Bu en iyi uygulamaları benimseyerek ve ileri düzey adımları keşfederek, DigitalOcean’daki Docker ortamınızı daha güvenli, verimli ve ölçeklenebilir hale getirebilirsiniz.

Sık Karşılaşılan Sorun Giderme

Docker ile çalışırken bazı yaygın sorunlarla karşılaşabilirsiniz. İşte bu sorunlara yönelik hızlı çözümler:

1. Cannot connect to the Docker daemon... Hatası

Bu hata, Docker daemon’ının çalışmadığını veya kullanıcınızın ona erişim izni olmadığını gösterir.

* Docker Servisini Kontrol Edin:

sudo systemctl status docker

Eğer çalışmıyorsa, başlatın:

sudo systemctl start docker

* Kullanıcı İzinlerini Kontrol Edin: Kullanıcınızın docker grubunda olduğundan emin olun.

groups kullanici_adi

Eğer docker grubu listede yoksa, yukarıda belirtildiği gibi ekleyin ve oturumu kapatıp tekrar açın veya su - kullanici_adi ile yeniden oturum açın.

2. Port Çakışmaları

Bir konteynerin kullanmaya çalıştığı portun zaten başka bir uygulama veya konteyner tarafından kullanılması durumunda bu sorun oluşur.

* Hangi Portların Kullanıldığını Kontrol Edin:

sudo netstat -tulnp | grep :80

(80 yerine çakışan port numarasını yazın)
* Konteyner Portunu Değiştirin: docker run -p komutunda veya docker-compose.yml dosyasında host makine üzerindeki portu değiştirin (örneğin, 8080:80).
* Çakışan Uygulamayı Durdurun: Eğer başka bir uygulama portu kullanıyorsa, onu durdurmayı düşünebilirsiniz.

3. Yetersiz Bellek (Out of Memory)

Özellikle küçük Droplet planlarında, Docker konteynerleri yetersiz bellek nedeniyle çökebilir.

* Docker Konteynerlerinin Kaynak Kullanımını İzleyin:

docker stats

Bu komut, çalışan konteynerlerin anlık CPU, bellek ve ağ kullanımını gösterir.
* Daha Büyük Bir Droplet Planına Yükseltin: Eğer bellek sürekli olarak yetersiz kalıyorsa, DigitalOcean kontrol panelinden Droplet’inizin planını yükseltmeniz gerekebilir.
* Konteyner Kaynak Sınırları Belirleyin: docker run --memory veya docker-compose.yml içinde mem_limit gibi seçeneklerle konteynerlere bellek sınırları atayarak kaynakların eşit dağıtılmasını sağlayabilirsiniz.

4. İmaj Çekme veya Konteyner Oluşturma Hataları

Ağ sorunları, yanlış imaj adı veya yetersiz disk alanı gibi nedenlerle imaj çekme veya konteyner oluşturma hataları oluşabilir.

* Ağ Bağlantısını Kontrol Edin: Droplet’inizin internete erişimi olduğundan emin olun (ping google.com).
* İmaj Adını Doğrulayın: docker pull veya docker run komutunda doğru imaj adını ve etiketini (tag) kullandığınızdan emin olun.
* Disk Alanını Kontrol Edin:

df -h

Eğer disk alanı doluysa, kullanılmayan imajları, konteynerleri ve volümleri temizleyebilirsiniz:

docker system prune -a

Bu komut, durdurulmuş konteynerleri, kullanılmayan ağları, dangling imajları ve isteğe bağlı olarak tüm kullanılmayan imajları ve volümleri siler.

Bu sorun giderme ipuçları, Docker ile çalışırken karşılaşabileceğiniz yaygın engelleri aşmanıza yardımcı olacaktır. Çoğu durumda, Docker’ın hata mesajları oldukça açıklayıcıdır ve sorunun kökenine işaret eder.

Sonuç

DigitalOcean üzerindeki Docker 1-Click kurulumu, modern uygulama geliştirme ve dağıtım süreçlerini basitleştiren ve hızlandıran güçlü bir kombinasyondur. Bu rehberde, DigitalOcean hesabınızı oluşturmaktan, Docker Droplet’inizi kurmaya, temel Docker komutlarını öğrenmeye ve hatta ileri düzey en iyi uygulamaları ve sorun giderme tekniklerini anlamaya kadar her adımı detaylı bir şekilde ele aldık.

Docker’ın konteyner tabanlı yaklaşımı, uygulamalarınızın her ortamda tutarlı bir şekilde çalışmasını sağlarken, DigitalOcean’ın kullanıcı dostu arayüzü ve uygun fiyatlı altyapısı, bu süreci herkes için erişilebilir kılar. 1-Click kurulumu sayesinde, dakikalar içinde tam fonksiyonel bir Docker ortamına sahip olabilir, böylece altyapı kurulumuyla uğraşmak yerine doğrudan uygulama geliştirmenize odaklanabilirsiniz.

Bu rehberin, DigitalOcean ve Docker dünyasına adım atmanız için sağlam bir temel oluşturduğunu umuyoruz. Konteynerleştirmenin sağladığı esneklik, ölçeklenebilirlik ve verimlilik ile projelerinizi bir sonraki seviyeye taşıyın. Unutmayın, Docker ve bulut teknolojileri sürekli gelişiyor; bu nedenle öğrenmeye ve yeni araçları keşfetmeye devam etmek, dijital dönüşüm yolculuğunuzda sizi ileriye taşıyacaktır. Başarılar dileriz!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.