Konteyner Yönetimi için Docker’da Portainer CE’nin Kurulumu
Seviye: Başlangıç
Tamamlama süresi: ~30 dakika
Hedef: Bu kılavuzu tamamladığınızda, HTTPS ile güvenli hale getirilmiş ve sunucunuzun Docker altyapısını yönetmeye hazır, tam olarak yapılandırılmış bir Portainer CE paneline sahip olacaksınız. Bu kılavuzu tamamladığınızda, HTTPS ile güvenli hale getirilmiş ve sunucunuzun Docker altyapısını yönetmeye hazır, tam olarak yapılandırılmış bir Portainer CE paneline sahip olacaksınız.
Giriş
Docker tabanlı konteynerleştirme, öngörülebilir dağıtım ve verimli hizmet ölçeklendirme sağlayarak sunucu altyapısı için standart hale gelmiştir. Ancak, düzinelerce konteyner çalıştırırken, bunları yalnızca komut satırı üzerinden yönetmek zorlaşır. Portainer CE, Docker yönetimi için kullanıcı dostu bir web arayüzü sunarak bu sorunu çözer: tüm konteynerlere, durumlarına, günlüklerine ve kaynaklarına erişim sağlar ve yönetim, sistem kontrolünü kaybetmeden birkaç tıklamayla gerçekleştirilir.
Sunucu Hazırlığı
Kurulumdan önce, sunucunun Portainer dağıtımına hazır olduğundan emin olmak gerekir. Portainer kendisi bir konteyner olarak çalışır, bu nedenle yalnızca Docker'ın kurulması gerekir.
Sistem gereksinimleri:
- İşletim sistemi: Barındırmada kullanılan herhangi bir Linux dağıtımı (Ubuntu 20.04+, Debian 11+, CentOS/Rocky Linux 8+).
- Ayrıcalıklar: root erişimi veya sudo aracılığıyla komutları çalıştırma yetkisi.
- Donanım gereksinimleri: En az 1 GB RAM ve 10 GB boş disk alanı.
- Ağ gereksinimleri: Portainer erişimi için 8000 ve 9443 numaralı bağlantı noktalarının açık olması, ters proxy yapılandırması için 443 numaralı bağlantı noktasının açık olması.
Docker'ın kullanılabilirliğini kontrol etme
SSH aracılığıyla sunucuya bağlanın. Öncelikle, Docker'ın kurulu olup olmadığını ve arka plan programının çalışıp çalışmadığını kontrol edin:
docker --version sudo systemctl status docker
Docker sürümü görüntüleniyorsa ve durumu aktif (çalışıyor) ise, Docker kurulum adımı atlanabilir.
Docker'ı yükleme (gerekirse)
Yeni sunucularda genellikle Docker bulunmaz. Yüklemek için standart komut dosyasını çalıştırın (Debian/Ubuntu için):
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo systemctl enable docker sudo systemctl start docker
Docker Compose eklentisini yüklemek için (önceki adımda yüklenmemişse), şunu çalıştırın:
sudo apt-get install docker-compose-plugin # For Debian/Ubuntu # or sudo dnf install docker-compose-plugin # For CentOS/Rocky Linux
Yüklü Docker Compose sürümünü kontrol edin:
docker compose version
Docker'da Portainer CE'yi Dağıtma
Portainer'ı çalıştırmanın iki ana yolu vardır: docker run komutu (hızlı başlatma) ve docker-compose.yml dosyası (yapılandırma sürümleme için kullanışlıdır).
Yöntem 1: docker run komutuyla çalıştırma
Sunucuda aşağıdaki komutu çalıştırın:
sudo docker run -d \ -p 8000:8000 \ -p 9443:9443 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest
Komut, mevcut kullanıcı henüz docker grubuna eklenmediği için sudo ile çalıştırılır. Daha sonra sudo olmadan docker kullanmayı planlıyorsanız, kullanıcıyı docker grubuna ekleyin:
sudo usermod -aG docker $USER
Komutu çalıştırdıktan sonra, oturumunuzu kapatıp yeniden açmanız veya oturumunuzu yeniden başlatmanız gerekir.
Parametrelerin açıklaması:
- -d – Konteyneri arka planda çalıştırır.
- -p 8000:8000 – Edge ajanları ve tüneller için bağlantı noktası yönlendirme.
- -p 9443:9443 – Güvenli web arayüzü (HTTPS) için bağlantı noktası yönlendirmesi. Portainer, kendi kendine imzalanmış bir SSL sertifikasını otomatik olarak oluşturur.
- --name portainer – Konteynere anlamlı bir ad atar.
- --restart=always – Arızalar veya sunucu yeniden başlatılması durumunda otomatik konteyner yeniden başlatma politikası.
- -v /var/run/docker.sock:/var/run/docker.sock – Docker soketini Portainer konteynerinin içine bağlar. Bu, Portainer'ın ana bilgisayardaki Docker arka plan programı ile etkileşime girmesine ve onu yönetmesine olanak tanır.
- -v portainer_data:/data – Portainer verilerini (kullanıcılar, ayarlar, bağlantı yapılandırmaları) depolamak için adlandırılmış bir birim oluşturur.
- portainer/portainer-ce:latest – Community Edition'ın en son kararlı sürümünü içeren görüntü.
Yöntem 2: docker-compose aracılığıyla çalıştırma
Bu yöntemi kullanmak için bir dizin ve bir docker-compose.yml dosyası oluşturun:
mkdir ~/portainer-docker cd ~/portainer-docker nano docker-compose.yml
Aşağıdaki içeriği ekleyin:
services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always ports: - "8000:8000" - "9443:9443" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data volumes: portainer_data:
Dosyayı kaydedin ve şu komutu çalıştırın:
docker compose up -d
İlk başlatma ve web arayüzü kurulumu
Portainer konteyneri başlatıldıktan sonra, ağ üzerinden erişilebilir hale gelir.
Adım 1. Web arayüzüne bağlanma
Bir tarayıcı açın ve şu adrese gidin:
Kendi imzalı sertifikanın kullanılması nedeniyle tarayıcı bir uyarı gösterecektir. Bu, ilk çalıştırmada normaldir. Siteye devam etmelisiniz (örneğin, "Riski Kabul Et" veya "Siteye Devam Et" seçeneğine tıklayın).
Kendi kendine imzalanmış bir sertifikanın kullanılması nedeniyle tarayıcı bir uyarı gösterecektir. Siteye devam etmelisiniz.

Adım 2. Kullanıcı oluşturma
Kayıt sayfasında bir kullanıcı adı (admin önerilir) belirtmeniz ve güçlü bir şifre belirlemeniz gerekecektir.
Şifre, konteyner yönetimine tam erişim sağladığından karmaşık olmalıdır.
Adım 3. Ortamı bağlama
Kullanıcıyı oluşturduktan sonra, Portainer ortamları bağlamanızı isteyecektir. Bu aşamada, yerel Docker'ı (bağlanmış soket sayesinde zaten mevcut) bağlayabilir veya "Ortam Ekle" düğmesini kullanarak uzak ortamları eklemeye devam edebilirsiniz.
Uzak ortamlar, tek bir Portainer arayüzünden birden fazla sunucuyu yönetmeniz gerektiğinde kullanışlıdır: örneğin, farklı veri merkezlerindeki Docker ana bilgisayarlarını veya Kubernetes'e sahip sunucuları eklemek gibi. Bağlantı, Portainer aracıları aracılığıyla veya TLS sertifikaları kullanılarak API üzerinden yapılır.
- "Başlayın" seçeneğini seçin. Bu, tek bir sunucu için temel senaryodur.
- Portainer, yerel Docker soketini otomatik olarak algılayacaktır. Bu, "yerel" olarak görüntülenecektir.
- Kurulumu tamamlamak için üzerine tıklayın.


Kurulum tamamlandı. Portainer kontrol paneli (ana ekran), konteynerler, görüntüler, birimler ve ağlarla ilgili kısa istatistiklerle birlikte açılacaktır.

Portainer'ın temel özellikleri
Günlük yönetim görevleri için kullanılan arayüzün ana bölümlerine bir göz atalım.
Kontrol Paneli
Genel durumu gösteren başlangıç ekranı: çalışan ve durdurulmuş konteynerlerin sayısı, indirilen görüntülerin sayısı. Sunucunun durumunu hızlı bir şekilde değerlendirmenizi sağlar.
Konteynerler
- Merkezi yönetim bölümü. Tüm konteynerlerin listesini gösterir.
- Konteyner yönetimi: Tek bir tıklamayla bir konteyneri başlatın, durdurun, yeniden başlatın veya silin.
- Günlükler: "Günlükler" sekmesi, konteyner günlüklerini gerçek zamanlı olarak görüntülemenizi sağlar.
- İnceleme: Konteyner hakkında ortam değişkenleri, bağlama noktaları, ağ ayarları gibi eksiksiz bilgileri JSON formatında görüntüler.
- İstatistikler: Her konteyner için CPU, bellek ve ağ kullanımına ilişkin grafikler. Tek tek hizmetlerin kaynak tüketimini belirlemenize yardımcı olur.
- Yürütme konsolu: Komutları yürütmek için bir konteyner içinde bir web terminali açma özelliği.
Yığınlar
Web arayüzünde Docker Compose'un uygulanması. Çoklu konteyner uygulamalarını dağıtmak için tarayıcı üzerinden doğrudan YAML dosyalarını yüklemenize veya oluşturmanıza olanak tanır.
Görüntüler
- Docker görüntüsü yönetimi.
- İndirme: Görüntüleri (örn. nginx:latest veya mysql:8.0) doğrudan arayüzden indirme özelliği.
- Kaldırma: Disk alanını boşaltmak için kullanılmayan görüntülerin temizlenmesi.
Hacimler
Kalıcı veri birimlerinin yönetimi. Mevcut birimleri, konteynerlere bağlanma durumlarını ve kapladıkları alanı gösterir. Veritabanları ve kullanıcı verileri için hayati öneme sahiptir.
Ağ
Konteyner etkileşimi için izole ağlar oluşturmanıza olanak tanır.
Değişiklikleri geri alma (Portainer'ı kaldırma)
Portainer'ı ve verilerini sunucudan tamamen kaldırmanız gerekiyorsa, şu adımları izleyin:
1. Portainer konteynerini durdurun ve kaldırın:
sudo docker stop portainer sudo docker rm portainer
2. Portainer veri birimini kaldırın (uyarı: bu işlem geri alınamaz):
sudo docker volume rm portainer_data
portainer_data birimini silmek, Portainer'ın tüm kullanıcılarının, ayarlarının ve yapılandırmalarının geri dönüşü olmayan bir şekilde kaybolmasına neden olur.
3. Portainer görüntüsünü kaldırın (isteğe bağlı):
sudo docker rmi portainer/portainer-ce:latest
Güvenlik ve öneriler
Üretim ortamı için Portainer'ın ek güvenlik yapılandırması gereklidir.
Ters Proxy (Nginx/Apache) Kullanımı
Bir alt etki alanı (örn. portainer.domain.com) kurmanız ve trafiği Nginx üzerinden yönlendirmeniz önerilir. Bu, aşağıdakileri sağlayacaktır:
- Geçerli bir SSL sertifikasının kullanılması (Let's Encrypt'ten ücretsiz olarak veya Sectigo gibi bir sağlayıcıdan ücretli olarak alınabilir).
- Merkezi erişim günlüğü.
- Ek kimlik doğrulama yapılandırma olanağı.
1. Nginx'i Kurma ve Yapılandırma
Nginx'i kurun:
sudo apt install -y nginx # For Debian/Ubuntu # or sudo dnf install -y nginx # For CentOS/Rocky Linux
Portainer için bir yapılandırma dosyası oluşturun:
sudo nano /etc/nginx/sites-available/portainer.conf
Aşağıdaki yapılandırmayı ekleyin ve kısmını
server { listen 80; server_name <YOUR_DOMAIN>; location / { proxy_pass https://localhost:9443; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; # Timeouts for long operations proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; } }
Yapılandırmayı etkinleştirin:
sudo ln -s /etc/nginx/sites-available/portainer.conf /etc/nginx/sites-enabled/
Nginx yapılandırmasını kontrol edin:
sudo nginx -t
Kontrol başarılı olursa, Nginx'i yeniden başlatın:
sudo systemctl restart nginx
2. HTTPS'yi Kurma (önerilir)
Certbot'u yükleyin:
sudo apt install -y certbot python3-certbot-nginx
Bir SSL sertifikası alın:
sudo certbot --nginx -d <your_domain></your_domain>
Yükleme sırasında e-posta adresinizi girin (örneğin, admin@
Otomatik sertifika yenilemeyi işaretleyin:
sudo systemctl list-timers | grep certbot
Güvenlik duvarı yapılandırması
Portainer bağlantı noktalarına doğrudan erişim kısıtlanmalıdır. Yalnızca güvenilir IP adreslerinden 8000 ve 9443 numaralı bağlantı noktalarına erişime izin verin.
Güvenlik duvarı kurallarına dikkat edin. Yanlış yapılandırma, sunucuya erişiminizi engelleyebilir.
UFW için örnek:
sudo ufw allow from 192.168.1.0/24 to any port 9443 proto tcp sudo ufw deny 9443
Burada 192.168.1.0/24, güvenilir IP adreslerinin alt ağıdır.
Düzenli güncellemeler
Olası güvenlik açıklarını ortadan kaldırmak için yeni Portainer sürümlerinin yayınlanmasını takip etmeniz ve konteyneri zamanında güncellemeniz önerilir.
Çalışmayı doğrulama
Portainer'ın doğru çalıştığını doğrulamak için aşağıdaki işlemleri gerçekleştirin.
- Görsel kontrol: "Konteynerler" bölümünde, Portainer konteynerinin "çalışıyor" durumunda olduğundan emin olun.
- Test konteyneri oluşturma:
- "Konteynerler" bölümüne gidin ve "Konteyner ekle" düğmesine tıklayın.
- "Ad" alanına test-nginx yazın.
- "Görüntü" alanına nginx:alpine yazın.
- "Port eşlemesi" bölümünde, ana bilgisayar portu olarak 8080'i, konteyner portu olarak 80'i belirtin.
- "Konteyneri dağıt" seçeneğine tıklayın.
- Erişilebilirlik kontrolü:
- Konteynerin listede "çalışıyor" durumuyla görünmesini bekleyin.
- Bir tarayıcı açın ve http://<YOUR_IP_ADDRESS>:8080 adresine gidin. Nginx karşılama sayfası görüntülenmelidir.
- Yönetim kontrolü:
- Portainer'da test-nginx konteynerini bulun ve "Durdur" düğmesine tıklayın.
- Tarayıcıdaki Nginx sayfasını yenileyin – sayfaya erişim mümkün olmamalıdır.
- "Başlat" düğmesine tıklayın – sayfaya erişim yeniden sağlanmalıdır.
Sorun Giderme
Sorun 1: https://:9443 adresindeki Portainer web arayüzü açılamıyor
Olası neden: Güvenlik duvarı 9443 numaralı bağlantı noktasını engelliyor.
Çözüm: Güvenlik duvarı kurallarını kontrol edin ve bağlantı noktasının açık olduğundan emin olun. UFW için: sudo ufw status | grep 9443.
Sorun 2: Docker komutları çalıştırılırken "Docker daemon'a bağlanılamıyor" hatası.
Olası neden: Docker arka plan programı çalışmıyor veya kullanıcının izinleri yetersiz.
Çözüm: Daemon'ubaşlatın : sudo systemctl start docker. Kullanıcıyı docker grubuna eklediyseniz, oturumu kapatıp yeniden giriş yapın.
Sorun 3: Portainer konteyneri başlamıyor ve hemen kapanıyor (durum: exited).
Olası neden: Bağlantı noktası çakışması veya bozuk bir görüntü.
Çözüm: 9443 numaralı bağlantı noktasının başka bir uygulama tarafından kullanılıp kullanılmadığını kontrol edin: sudo ss -tulpn | grep 9443. Bağlantı noktasını yeniden atamayı deneyin ve konteyneri yeniden başlatın: sudo docker restart portainer.
Sonuç
Portainer CE, Docker konteynerlerinin görsel olarak izlenmesi ve yönetimi için etkili bir araç sunar. SSH üzerinden bağlanmadan konteynerlerin durumunu hızlıca değerlendirebilme, kaynak tüketim grafiklerini analiz edebilme ve tipik işlemleri gerçekleştirebilme özelliği, olaylara müdahale süresini kısaltır ve günlük yönetimi kolaylaştırır.
Bu araç, geliştiricilere veya daha az deneyimli personele sunucu komut satırına doğrudan erişim izni vermeden konteyner yönetimine sınırlı erişim sağlamak gerektiğinde faydalı olabilir. Portainer CE, konteyner altyapısını görselleştirmek için standart bir çözümdür ve sunucularda kullanılması önerilir.
---
Belge Sürümü: 1 .1
Son Güncelleme: Mart 2026
Sorumlu: Teknik Dokümantasyon Ekibi