HELPER VPS

VPS'e Docker kurulumu: Ubuntu, Debian, AlmaLinux ve Compose

Docker'ın resmi deposuyla kurarsanız en güncel Docker Engine'i ve Compose eklentisini alırsınız, sonraki güncellemeler de tek bir sistem güncellemesiyle tamamlanır. İşletim sistemlerine göre komutları ve kurulumdan sonra mutlaka yapılması gereken ayarları sırayla derledik.

En hızlı yol: Docker imajıyla sunucu oluşturma

Yeni bir sunucu oluşturuyorsanız en hızlı yol imaj listesinden Docker'ı seçmektir. Ubuntu 24.04 LTS üzerine Docker Engine ve Docker Compose kurulu olarak başladığı için giriş yapar yapmaz docker compose up çalıştırırsınız. Uygulama tanıtımı ve önerilen boyutlar Docker VPS sayfasında yer alır.

Kullandığınız bir sunucuya Docker eklemek veya Debian ve AlmaLinux gibi başka bir işletim sistemi kullanmak istiyorsanız aşağıdaki sırayla kendiniz kurun. Tüm komutlar root olarak bağlanılmış duruma göre hazırlanmıştır. Normal kullanıcıyla bağlandıysanız komutların başına sudo ekleyin.

Kurulumdan önce kontrol edilecekler

Docker her boyuttaki sunucuda çalışır. Birkaç container çalıştıran kişisel projeler için en küçük 12GB genel plan yeterlidir; veritabanı, web sunucusu ve önbelleği birlikte çalıştırmak için 24GB veya daha fazlası size alan sağlar. İmaj indirme ve derleme işleriniz çoksa hızlı diski olan bir NVMe VPS fark yaratır.

İşletim sistemi deposundan gelen eski bir Docker paketi varsa resmi paketlerle karışmaması için önce kaldırın. Kurulu olmayan paketler atlandığı için komutu olduğu gibi çalıştırmanızda sakınca yoktur.

Ubuntu, Debian
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt remove -y $pkg; done

Ubuntu 24.04'e Docker kurulumu

1. adım. Depo anahtarını ve adresini ekleyin

Ubuntu 24.04
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list

2. adım. Docker Engine ve Compose'u kurun

Ubuntu 24.04
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Kurulum bittiğinde Docker hizmeti otomatik başlar ve sunucuyu yeniden başlatsanız da birlikte açılır. Aynı komutlar Ubuntu 22.04 ve 26.04'te de olduğu gibi çalışır. Depo adresindeki sürüm adı /etc/os-release dosyasından otomatik okunur.

Debian 13'e Docker kurulumu

Debian'da sıra Ubuntu ile aynıdır, yalnızca depo adresi linux/debian olarak değişir. Debian 12'de de aynı komutları kullanırsınız.

Debian 13
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

AlmaLinux 10'a Docker kurulumu

AlmaLinux ve Rocky Linux, Docker'ın RHEL deposunu kullanır. Varsayılan olarak gelen Podman ile çakışmaması için önce temizleyip ardından kurun. AlmaLinux 9 ile Rocky Linux 9 ve 10'da da komutlar aynıdır.

AlmaLinux 10
dnf remove -y podman buildah runc
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker

İlk kurulumda depo imza anahtarını kabul edip etmeyeceğiniz sorulursa y'ye basın. RHEL ailesinde hizmet kurulumdan sonra otomatik başlamadığı için son satırdaki systemctl enable --now docker ile şimdi başlatın ve açılışta da başlamasını sağlayın.

Kurulumu kontrol etme ve ilk container

Aşağıdaki komutla bir test container'ı çalıştırın. Hello from Docker ile başlayan bir mesaj çıkarsa motor, imaj indirme ve container çalıştırma işlemlerinin hepsi sorunsuz çalışıyor demektir. --rm eklendiği için çalışma bitince container hemen temizlenir.

Terminal
docker run --rm hello-world
docker compose version

Normal bir kullanıcıyla da Docker kullanmak istiyorsanız o kullanıcıyı docker grubuna ekleyip yeniden giriş yapın. docker grubu root ile aynı yetkiye sahip olduğundan yalnızca güvendiğiniz kullanıcıları ekleyin.

Terminal
usermod -aG docker kullanici_adi

Docker Compose ile hizmet yayınlama

Compose, container ayarlarını tek bir YAML dosyasına yazıp tek satırla başlatma yöntemidir. Sunucuyu taşısanız veya yeniden oluştursanız da aynı dosya olduğu sürece aynı ortam yeniden kurulur. Örneğin tek bir Nginx web sunucusu başlatan dosya şöyle görünür.

Terminal
mkdir -p /opt/web && cd /opt/web
cat > compose.yaml <<'EOF'
services:
  web:
    image: nginx:stable
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    restart: unless-stopped
EOF
docker compose up -d

Tarayıcıda http://YOUR_SERVER_IP adresini açtığınızda Nginx ekranı görünür. html klasörüne index.html koyarsanız o dosya görünür. Sık kullanılan komutlar için aşağıdaki dördü yeterlidir.

  • docker compose ps: şu anda çalışan container'ları ve portları gösterir.
  • docker compose logs -f: canlı günlükleri izler. Ctrl+C ile çıkarsınız.
  • docker compose pull && docker compose up -d: yeni imajları indirip container'ları yeni sürüme geçirir.
  • docker compose down: container'ları durdurup temizler. Volume'lardaki veriler olduğu gibi kalır.

restart: unless-stopped yazarsanız sunucu yeniden başladığında container'lar da otomatik olarak yeniden başlar. Yalnızca sizin durdurduğunuz container'lar durmuş halde kalır.

Güvenlik duvarı ve port açma ayarları

Docker, ports: ile yayınladığınız portları güvenlik duvarı kurallarına (iptables) doğrudan ekleyerek açar. Bu yüzden ufw'de izin vermediğiniz bir portu ports: altına yazarsanız dışarıdan erişilebilir. Dışarıya gösterilmesi gerekmeyen veritabanlarını veya yönetim ekranlarını aşağıdaki gibi yalnızca 127.0.0.1'e bağlarsanız yalnızca sunucu içinden erişilir.

compose.yaml
    ports:
      - "127.0.0.1:5432:5432"

Web hizmetlerinde yalnızca 80 ve 443 numaralı portları yayınlayıp geri kalanların aynı Compose ağı içinde birbirini hizmet adıyla çağırmasını sağlarsanız yapı düzenli olur. Sunucunun genel güvenlik duvarı için temel güvenlik duvarı rehberini izleyerek yalnızca SSH, HTTP ve HTTPS'i açın.

Günlük ve disk yönetimi

Container günlükleri ayrıca ayarlanmazsa birikmeye devam eder. /etc/docker/daemon.json dosyasında aşağıdaki gibi local günlük sürücüsünü belirtirseniz günlükler sıkıştırılır ve yalnızca belirlenen boyut kadar saklanır. Kaydettikten sonra systemctl restart docker çalıştırdığınızda yeni oluşturulan container'lardan itibaren uygulanır.

/etc/docker/daemon.json
{
  "log-driver": "local"
}

Kullanılmayan imajlar ve durdurulmuş container'lar da disk kaplar. docker system df ile kullanımı görün, docker image prune -a ile şu anda kullanılmayan imajları temizleyin. Veriler büyüdüğünde sunucuya bir NVMe blok disk takıp Docker veri klasörü olarak kullanmak da bir yöntemdir.

Verileri koruma ve sonraki adımlar

Container'ları istediğiniz zaman silip yeniden oluşturabilirsiniz, ancak volume'lardaki veriler yeniden oluşturulamaz. Veritabanları için düzenli döküm dosyaları alın, sunucunun tamamını otomatik yedekleme veya anlık görüntüyle birlikte korursanız içiniz rahat eder. Yöntemler yedekleme ve anlık görüntü rehberinde yer alır.

WordPress'i Docker ile yayınlayan Compose dosyası WordPress kurulum rehberinde yer alır. Birden fazla uygulamayı ekrandan dağıtmak ve HTTPS sertifikalarını da otomatik eklemek istiyorsanız Coolify veya Dokploy imajıyla bir sunucu oluşturun. Yalnızca container için kullanmaya uygun boyutlar container VPS sayfasında derlenmiştir.

Birlikte okumanız faydalı olacak rehberler

Bu rehberle birlikte yapmanızda fayda olan ayarlar.

Tüm rehberleri gör