Tüm yazılar

blog

Uzak bir VPS’te Docker konteynerleri nasıl yönetilir

Yayın tarihi

Kiralık bir sunucuda konteyner yönetmenin her yolu önce tek bir soruyu cevaplar: tıkladığın ya da yazdığın şey aslında nerede çalışıyor? Bu cevabı doğru verince araç seçimi büyük ölçüde kendiliğinden netleşir.

Araç sorusunun altındaki soru

Bu konudaki arama sonuçları çoğunlukla araç listeleri. Daha işe yarar ayrım, kontrol düzleminin nerede durduğu: kimlik bilgilerini tutan, komutlarını alan ve Docker daemon’ıyla konuşan parça.

Bu parçanın durabileceği dört yer var: terminalin, ağa açılmış bir daemon portu, sunucudaki bir web paneli ya da kendi bilgisayarındaki bir masaüstü uygulaması. Her biri maliyeti ve riski başka bir yere taşır.

Seçenek 1: SSH üzerinden terminal

Taban çizgisi. Sunucuya SSH erişimin zaten var ve her Docker işlemi bir komut uzaklıkta. Hiçbir maliyeti yok, sunucuya yeni bir şey gerektirmiyor ve giriş yapabildiğin her Linux makinesinde çalışıyor.

Docker context’leri işi biraz rahatlatır: yerel docker komutunu SSH üzerinden uzak daemon’a yönlendirirsin ve dizüstündeki docker ps sunucudaki konteynerleri listeler.

Çalışanları görmenin iki eşdeğer yolu

# giriş yap, komutu orada çalıştır
ssh deploy@203.0.113.10
docker ps

# ya da yerel kabukta kal, komutları SSH üzerinden gönder
docker context create my-vps --docker "host=ssh://deploy@203.0.113.10"
docker --context my-vps ps
docker --context my-vps logs -f --tail 100 web

Bedeli para değil, hafıza: stack hangi dizinde, konteyner hangi bayraklarla başlatıldı ve bu terminal şu an hangi sunucuya bağlı.

Seçenek 2: Docker daemon’ını dışarı açmak

Daemon’ı bir TCP portunda dinletip istemcileri oraya yönlendirebilirsin. Eski rehberler hâlâ öneriyor ve atlanması gereken seçenek bu: daemon erişimi makinede root demek, 2375 portunda hiç kimlik doğrulama yok ve 2376’daki TLS varyantı seni bir sertifika otoritesinin işletmecisi yapıyor.

Gerekçenin tamamı ayrı bir yazıda, burada tekrarlanmıyor.

Seçenek 3: sunucuda bir web paneli

Portainer, Coolify, Dokploy ve benzerleri sunucunun kendisinde konteyner olarak çalışır ve bir web arayüzü sunar. Yetenekliler, çoğu ücretsiz ve avantajları gerçek: herhangi bir tarayıcıdan açılırlar, birkaç kişi aynı paneli paylaşabilir ve otomatikleştirdikleri işler dizüstün kapalıyken de çalışmaya devam eder.

Bedeli, panelin ikinci bir sistem olması. Docker soketini bağlar, yani root’a eşdeğerdir; nerede olursan ol erişilebilir olması gereken bir giriş sayfası vardır; kendi veritabanı, kendi güncellemeleri ve takip edilecek kendi güvenlik duyuruları vardır. Birkaç sunucuyu yöneten bir panel, her biri için bir kimlik bilgisi de tutar.

Seçenek 4: SSH üzerinden masaüstü istemcisi

Bir masaüstü uygulaması terminalde yapacağın şeyi yapabilir — kendi bilgisayarından SSH bağlantısı açıp sunucuda Docker komutları çalıştırır — ve sonucu metin yerine bir pencerede gösterir.

Sunucuda yeni hiçbir şey dinlemez, SSH anahtarları kullandığın makinede kalır. Takas, seçenek 3’ün aynadaki yansıması: kurulu olduğu bilgisayarlarda çalışır, paylaşılan değil tek kişilik bir araçtır ve kapattığında yaptığı hiçbir şey çalışmaya devam etmez — araç bunun için sunucuya bir şey kurmuyorsa. Bunu sormaya değer.

Duruma göre seçmek

  1. 01Tek sunucu, yalnız sen, ayda birkaç dağıtım: terminal gerçekten yeterli. Tekrarladığın komutları bir yere yaz.
  2. 02Birkaç kişinin erişmesi gerekiyor ya da telefondan bakmak istiyorsun: sunucu tarafı panel bunun için yapılmış, bedelleri de paylaşılan erişimin fiyatı.
  3. 03Git’e push edince sunucunun kendisi derleyip dağıtsın, önizleme ortamları olsun istiyorsun: bu, PaaS tarzı bir panelin kendi sahası.
  4. 04Tek başına ya da küçük bir ekiple çalışıyorsun, birkaç sunucuyu görsel olarak görmek istiyorsun ve internete açık bir servis daha istemiyorsun: masaüstü istemcisi uyar.

MihraOps nereye oturuyor

MihraOps seçenek 4. Kendi bilgisayarından sıradan bir SSH bağlantısı açar, sunucuda Docker ve Compose komutları çalıştırır ve sunucu kimlik bilgilerini işletim sisteminin şifreli deposunda tutar.

Diğer üç durumun cevabı değil. Bir ekip arkadaşıyla paylaşılacak web girişi ve telefondan bakılacak bir panel yok. Sunucuya koyabildiği tek bileşen, dağıtım webhook’ları ve uyarılar için isteğe bağlı bir Agent; onu bilerek kurarsın ve kaldırabilirsin. Belirli bir panelle karşılaştırıyorsan karşılaştırma sayfaları ürün ürün ilerliyor.

Sırada