KernelPunk

root
Forum yöneticisi
Günümüzde yazılım geliştirme süreçlerinde Docker, uygulamaların bağımsız ve taşınabilir bir şekilde dağıtılmasını sağlayarak büyük kolaylık sunmaktadır. Özellikle Linux sunucularında Docker kullanarak uygulama dağıtımı yapmak, hem geliştirme süreçlerini hızlandırır hem de sistem kaynaklarını daha verimli kullanmayı mümkün kılar.

1. Docker Nedir ve Neden Kullanılmalıdır?​

Docker, uygulamaları konteynerler içinde çalıştırarak, bağımsız ve taşınabilir bir altyapı sunar. Geleneksel sanal makinelerden farklı olarak, Docker konteynerleri işletim sisteminin tamamını kopyalamadan yalnızca uygulamanın gereksinim duyduğu bağımlılıkları içerir.

Docker Kullanmanın Avantajları:
  • Platform Bağımsızlığı: Uygulamalar her ortamda (Linux, Windows, macOS) çalışabilir.
  • Kaynak Verimliliği: Geleneksel sanal makinelerden daha hafiftir ve daha az kaynak tüketir.
  • Kolay Dağıtım: Konteynerler hızla oluşturulabilir, kaldırılabilir ve taşınabilir.
  • Versiyon Kontrolü: Uygulamalar farklı versiyonlarda yönetilebilir.

2. Linux Sunucusunda Docker Kurulumu​

Docker’ı Linux sunucusuna kurmak için aşağıdaki adımları takip edebilirsiniz.

2.1. Docker’ın Sistem Gereksinimleri​

  • 64-bit işlemci mimarisi
  • En az 2 GB RAM (tavsiye edilen 4 GB+ RAM)
  • Ubuntu, Debian, CentOS gibi desteklenen bir Linux dağıtımı

2.2. Ubuntu ve Debian İçin Docker Kurulumu​

Öncelikle sistemdeki eski Docker sürümlerini kaldırın:
Bash:
sudo apt-get remove docker docker-engine docker.io containerd runc
Güncellemeleri çalıştırın ve gerekli bağımlılıkları yükleyin:
Bash:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
Docker resmi deposunu ekleyin ve Docker'ı yükleyin:
Bash:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
Docker’ın çalıştığını doğrulayın:
Bash:
sudo systemctl status docker
Docker’ın her açılışta otomatik başlamasını sağlamak için:
Bash:
sudo systemctl enable docker

2.3. CentOS İçin Docker Kurulumu​

Bash:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
Docker’ın yüklendiğini doğrulamak için:
Bash:
docker --version

3. Docker Komutları ile Çalışmak​

Docker kurulumunun ardından, temel komutlarla çalışmaya başlayabilirsiniz.

Mevcut Docker sürümünü kontrol etmek:
Bash:
docker --version
Docker servisini başlatmak:
Bash:
sudo systemctl start docker
Kullanıcıyı Docker grubuna ekleyerek sudo gereksinimini kaldırmak:
Bash:
sudo usermod -aG docker ${USER}
Bir Docker konteyneri başlatmak:
Bash:
docker run -d -p 80:80 nginx

4. Docker ile Uygulama Dağıtımı​

Docker kullanarak bir uygulamayı Linux sunucusunda çalıştırmak için genellikle Dockerfile ve Docker Compose kullanılır.

4.1. Dockerfile ile Uygulama Paketleme​

Dockerfile, uygulamanızın nasıl çalışacağını tanımlayan bir dosyadır. Örneğin, basit bir Node.js uygulaması için Dockerfile şu şekilde olabilir:
Kod:
FROM node:18
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["node", "server.js"]
EXPOSE 3000
Bu dosya ile bir Docker imajı oluşturabilirsiniz:
Bash:
docker build -t mynodeapp .
Ardından, uygulamayı çalıştırabilirsiniz:
Bash:
docker run -d -p 3000:3000 mynodeapp

4.2. Docker Compose ile Çoklu Konteyner Yönetimi​

Eğer birden fazla servisi (örneğin, bir veritabanı ile birlikte) yönetmek istiyorsanız Docker Compose kullanabilirsiniz.

Örnek docker-compose.yml dosyası:
YAML:
version: '3'
services:
  web:
    image: mynodeapp
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: mydatabase
Docker Compose ile uygulamayı başlatmak için:
Bash:
docker-compose up -d
Docker, Linux sunucularında uygulama dağıtımını kolaylaştıran güçlü bir araçtır. Uygulamalarınızı platform bağımsız hale getirmek, ölçeklenebilirliği artırmak ve sistem kaynaklarını daha verimli kullanmak için Docker kullanabilirsiniz.

Eğer büyük ölçekli uygulamalar geliştiriyorsanız, Kubernetes gibi orkestrasyon araçlarını da inceleyerek Docker’ı daha verimli kullanabilirsiniz.
 
Back
Top