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.
Docker Kullanmanın Avantajları:
Güncellemeleri çalıştırın ve gerekli bağımlılıkları yükleyin:
Docker resmi deposunu ekleyin ve Docker'ı yükleyin:
Docker’ın çalıştığını doğrulayın:
Docker’ın her açılışta otomatik başlamasını sağlamak için:
Docker’ın yüklendiğini doğrulamak için:
Mevcut Docker sürümünü kontrol etmek:
Docker servisini başlatmak:
Kullanıcıyı Docker grubuna ekleyerek sudo gereksinimini kaldırmak:
Bir Docker konteyneri başlatmak:
Bu dosya ile bir Docker imajı oluşturabilirsiniz:
Ardından, uygulamayı çalıştırabilirsiniz:
Örnek docker-compose.yml dosyası:
Docker Compose ile uygulamayı başlatmak için:
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.
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
Bash:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
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
Bash:
sudo systemctl status docker
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
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
Bash:
sudo systemctl start docker
Bash:
sudo usermod -aG docker ${USER}
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
Bash:
docker build -t mynodeapp .
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
Bash:
docker-compose up -d
Eğer büyük ölçekli uygulamalar geliştiriyorsanız, Kubernetes gibi orkestrasyon araçlarını da inceleyerek Docker’ı daha verimli kullanabilirsiniz.