VDS Sunucuya SSH ile Bağlanma Rehberi (PuTTY & Terminal)
Linux VDS sunucunuza SSH ile bağlanma adımları: PuTTY, Terminal, anahtar tabanlı kimlik doğrulama, Path Panel firewall kuralı ve güvenlik ipuçları.
Docker kurulumu, temel komutlar (run, stop, rm, ps), image yönetimi, volume ve network temelleri. Linux sunucuda Docker ile konteyner çalıştırma adım adım rehber.
Docker, uygulamaları izole konteynerler içinde çalıştırmanızı sağlayan açık kaynaklı bir platformdur. Geliştirme ortamından üretime kadar tutarlı bir çalışma ortamı sunar. Bu rehberde Docker kurulumunu, temel komutları ve pratik kullanım senaryolarını ele alacağız.
Docker, uygulamaları ve bağımlılıklarını bir araya getirerek taşınabilir konteynerler oluşturur. Sanal makinelerden farklı olarak:
Docker, modern yazılım geliştirme ve dağıtımının temel taşıdır. REXE sunucularında Docker ile uygulamalarınızı kolayca deploy edebilirsiniz.
# Eski sürümleri kaldır
sudo apt remove docker docker-engine docker.io containerd runc
# Gerekli paketleri kur
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release -y
# Docker GPG anahtarını ekle
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Docker deposunu ekle
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker'ı kur
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
# Servisi başlat ve etkinleştir
sudo systemctl start docker
sudo systemctl enable docker
# Docker deposunu ekle
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Docker'ı kur
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
# Servisi başlat
sudo systemctl start docker
sudo systemctl enable docker
# Docker sürümünü kontrol et
docker --version
# Test konteyneri çalıştır
sudo docker run hello-world
# Sudo olmadan Docker kullanmak için
sudo usermod -aG docker $USER
newgrp docker
# Basit konteyner çalıştır
docker run nginx
# Arka planda (detached) çalıştır
docker run -d nginx
# Port yönlendirme ile çalıştır
docker run -d -p 8080:80 nginx
# İsim vererek çalıştır
docker run -d --name web-server -p 8080:80 nginx
# Ortam değişkeni ile çalıştır
docker run -d -e MYSQL_ROOT_PASSWORD=sifre --name mysql mysql:8.0
# Volume bağlayarak çalıştır
docker run -d -v /host/dizin:/container/dizin nginx
# Otomatik yeniden başlatma
docker run -d --restart unless-stopped nginx
# İnteraktif terminal
docker run -it ubuntu bash
# Çalışan konteynerleri listele
docker ps
# Tüm konteynerleri listele (durmuş dahil)
docker ps -a
# Konteyneri durdur
docker stop konteyner_adi
# Konteyneri başlat
docker start konteyner_adi
# Konteyneri yeniden başlat
docker restart konteyner_adi
# Konteyneri sil (önce durdurulmalı)
docker rm konteyner_adi
# Çalışan konteyneri zorla sil
docker rm -f konteyner_adi
# Tüm durmuş konteynerleri sil
docker container prune
# Konteyner loglarını görüntüle
docker logs konteyner_adi
# Canlı log takibi
docker logs -f konteyner_adi
# Son 100 satır log
docker logs --tail 100 konteyner_adi
# Konteyner kaynak kullanımı
docker stats
# Konteyner detayları
docker inspect konteyner_adi
# Konteynere bağlan
docker exec -it konteyner_adi bash
# Konteynerde komut çalıştır
docker exec konteyner_adi ls /var/www
# Image indir
docker pull nginx
docker pull nginx:1.25
docker pull ubuntu:22.04
# Mevcut image'ları listele
docker images
# Image sil
docker rmi nginx
# Kullanılmayan image'ları temizle
docker image prune
# Tüm kullanılmayan kaynakları temizle
docker system prune -a
# Image boyutunu görüntüle
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
# Örnek Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
# Image oluştur
docker build -t uygulamam:1.0 .
# Image'ı Docker Hub'a gönder
docker tag uygulamam:1.0 kullanici/uygulamam:1.0
docker push kullanici/uygulamam:1.0
Volume'lar, konteyner silinse bile verilerin kalıcı olmasını sağlar.
# Volume oluştur
docker volume create veritabani-verisi
# Volume'ları listele
docker volume ls
# Volume'u konteynere bağla
docker run -d -v veritabani-verisi:/var/lib/mysql mysql:8.0
# Bind mount (host dizini)
docker run -d -v /root/data:/app/data nginx
# Volume sil
docker volume rm veritabani-verisi
# Kullanılmayan volume'ları temizle
docker volume prune
# Volume detayları
docker volume inspect veritabani-verisi
# Mevcut ağları listele
docker network ls
# Özel ağ oluştur
docker network create uygulama-agi
# Konteyneri ağa bağla
docker run -d --network uygulama-agi --name web nginx
docker run -d --network uygulama-agi --name db mysql:8.0
# Aynı ağdaki konteynerler birbirini isimle bulabilir
# web konteyneri içinden: ping db
# Ağ detayları
docker network inspect uygulama-agi
# Ağı sil
docker network rm uygulama-agi
docker run -d \
--name nginx-web \
-p 80:80 \
-v /var/www/html:/usr/share/nginx/html:ro \
--restart unless-stopped \
nginx:alpine
docker run -d \
--name mysql-db \
-e MYSQL_ROOT_PASSWORD=guclu_sifre \
-e MYSQL_DATABASE=uygulamam \
-v mysql-data:/var/lib/mysql \
-p 3306:3306 \
--restart unless-stopped \
mysql:8.0
# Önce ağ oluştur
docker network create wordpress-net
# MySQL başlat
docker run -d \
--name wordpress-db \
--network wordpress-net \
-e MYSQL_ROOT_PASSWORD=root_sifre \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wp_user \
-e MYSQL_PASSWORD=wp_sifre \
-v wp-db-data:/var/lib/mysql \
mysql:8.0
# WordPress başlat
docker run -d \
--name wordpress \
--network wordpress-net \
-e WORDPRESS_DB_HOST=wordpress-db \
-e WORDPRESS_DB_USER=wp_user \
-e WORDPRESS_DB_PASSWORD=wp_sifre \
-e WORDPRESS_DB_NAME=wordpress \
-p 8080:80 \
wordpress:latest
Birden fazla konteyner yönetmek için Docker Compose kullanın. docker-compose.yml dosyası ile tüm servisleri tek komutla başlatabilirsiniz.
Docker, modern uygulama dağıtımının vazgeçilmez aracıdır. Temel komutları öğrendikten sonra Docker Compose ile çoklu servis yönetimine geçebilirsiniz. REXE sunucularında Docker kullanarak uygulamalarınızı izole, güvenli ve taşınabilir şekilde çalıştırabilirsiniz.
Sanal makineler tam bir işletim sistemi çalıştırır (GB'larca disk, dakikalarca başlangıç süresi). Docker konteynerleri host çekirdeğini paylaşır, MB'larca yer kaplar ve saniyeler içinde başlar. Konteynerler daha hafif ve hızlıdır, ancak daha az izolasyon sunar.
Docker volume, Docker tarafından yönetilen (/var/lib/docker/volumes/) kalıcı depolama alanıdır. Bind mount ise host sistemindeki belirli bir dizini konteynere bağlar. Volume'lar taşınabilirlik ve yedekleme için daha iyidir; bind mount'lar geliştirme ortamında kod paylaşımı için kullanışlıdır.
Konteyner içindeki veriler silinir, ancak volume'a yazılan veriler kalır. Veritabanı, dosya yüklemeleri gibi kalıcı olması gereken veriler için mutlaka volume kullanın: 'docker run -v veri-volume:/veri/yolu ...'.
Docker Hub, resmi ve topluluk image'larının bulunduğu merkezi depodur. 'docker pull nginx' komutu Docker Hub'dan nginx image'ını indirir. Kendi image'larınızı da 'docker push' ile yükleyebilirsiniz. hub.docker.com adresinden ücretsiz hesap açabilirsiniz.
'--restart unless-stopped' parametresi ile konteyneri çalıştırın. Bu sayede sunucu yeniden başladığında veya konteyner çöktüğünde otomatik olarak yeniden başlar. Mevcut konteynere eklemek için: 'docker update --restart unless-stopped konteyner_adi'.
Linux VDS sunucunuza SSH ile bağlanma adımları: PuTTY, Terminal, anahtar tabanlı kimlik doğrulama, Path Panel firewall kuralı ve güvenlik ipuçları.
Windows Server VDS sunucunuza Uzak Masaüstü (RDP) ile bağlanma adımları, NLA güvenlik ayarları, Path Panel firewall kuralı ve sorun giderme rehberi.
REXE panel üzerinden VDS sunucunuzun işletim sistemini değiştirme adımları, yedekleme önerileri, desteklenen Linux ve Windows Server sürümleri.