Portainer CE'nin Kurulumu ve Yapılandırılması
Düzey: Başlangıç
Tamamlama Süresi: ~30 dakika
Hedef: Bu kılavuzu tamamladığınızda, HTTPS ile güvence altına alınmış ve sunucunuzun Docker altyapısını yönetmeye hazır tam yapılandırılmış bir Portainer CE paneline sahip olacaksınız.
Giriş
Docker tabanlı konteynerleştirme, sunucu altyapısı için standart hale gelmiştir ve öngörülebilir dağıtım ve verimli hizmet ölçeklendirmesi sağlar. Ancak, onlarca konteyner çalıştırırken, bunları yalnızca komut satırı üzerinden yönetmek zahmetli hale gelir. Portainer CE, Docker yönetimi için kullanıcı dostu bir web arayüzü sunarak bu sorunu çözer: tüm konteynerlere, durumlarına, loglarına ve kaynaklarına erişim sağlar ve yönetim, sistem kontrolünü kaybetmeden birkaç tıklama ile 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 yüzden yalnızca Docker'ın kurulması gerekir.
Sistem Gereksinimleri
- İşletim sistemi: Herhangi bir Linux dağıtımı (Ubuntu 20.04+, Debian 11+, CentOS/Rocky Linux 8+) hostingde kullanılır.
- Ayrıcalıklar: root erişimi veya sudo ile komut çalıştırma yeteneği.
- Donanım gereksinimleri: Minimum 1 GB RAM ve 10 GB boş disk alanı.
- Ağ gereksinimleri: Portainer erişimi için 8000 ve 9443 portlarını, ters proxy yapılandırması için 443 portunu açın.
Docker Mevcutluğunu Kontrol Etme
SSH üzerinden sunucuya bağlanın. Öncelikle, Docker'ın kurulu olup olmadığını ve daemon'un çalışıp çalışmadığını kontrol edin:
docker --version sudo systemctl status docker
Eğer Docker sürümü görüntüleniyorsa ve durum aktif (çalışıyor) ise, Docker kurulum adımı atlanabilir.
Docker Kurulumu (gerekirse)
Yeni sunucularda genellikle Docker bulunmaz. Kurmak için, standart script'i ç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 kurmak için (önceki adımda kurulmadıysa), şu komutu çalıştırın:
sudo apt-get install docker-compose-plugin # Debian/Ubuntu için # veya sudo dnf install docker-compose-plugin # CentOS/Rocky Linux için
Kurulu docker compose sürümünü kontrol edin:
docker compose version
Docker'da Portainer CE Dağıtımı
Portainer'ı çalıştırmanın iki ana yolu vardır: docker run komutu ile (hızlı başlangıç) ve docker-compose.yml ile (yapılandırma sürümlendirmesi için uygun).
Yöntem 1: docker run ile Ç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 docker'ı sudo olmadan kullanmayı planlıyorsanız, kullanıcıyı docker grubuna ekleyin: sudo usermod -aG docker $USER. Komutu çalıştırdıktan sonra oturumu kapatıp tekrar 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 port yönlendirme.
- -p 9443:9443 – Güvenli web arayüzü (HTTPS) için port yönlendirme. Portainer otomatik olarak kendi imzalı bir SSL sertifikası oluşturur.
- --name portainer – Konteynere anlamlı bir ad atar.
- --restart=always – Başarısızlıklar veya sunucu yeniden başlatıldığında otomatik konteyner yeniden başlatma politikası.
- -v /var/run/docker.sock:/var/run/docker.sock – Docker soketini Portainer konteynerinin içine monte eder. Bu, Portainer'ın ana bilgisayardaki Docker daemon ile etkileşimde bulunmasına 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 hacim oluşturur.
- portainer/portainer-ce:latest – Topluluk Sürümünün en son kararlı sürümüne sahip görüntü.
Yöntem 2: docker-compose ile Çalıştırma
Bu yöntemi kullanmak için bir dizin ve 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 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: https://<sunucu-IP-adresi>:9443.
Kendi imzalı bir sertifika kullanımı nedeniyle, tarayıcı bir uyarı gösterecektir. Bu, ilk çalıştırma için normaldir. Siteye devam etmelisiniz (örneğin, "Riski Kabul Et" veya "Siteye Devam Et"e tıklayın).

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 karmaşık olmalıdır, çünkü konteyner yönetimine tam erişim sağlar.
Adım 3. Ortamı bağlama
Kullanıcı oluşturduktan sonra, Portainer size ortamları bağlamanızı isteyecektir. Bu aşamada, yerel Docker'ı (monte edilmiş soket sayesinde zaten mevcut) bağlayabilir veya "Ortam Ekle" düğmesi aracılığıyla 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 ile sunucuları eklemek. Bağlantı, Portainer ajanları 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ılar. "local" 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, hacimler ve ağlar hakkında kısa istatistiklerle açılacaktır.

Portainer'ın Ana Özellikleri
Günlük yönetim görevleri için kullanılan arayüzün ana bölümlerine bakalım.
Kontrol Paneli
Çalışan ve durdurulmuş konteynerlerin sayısını, indirilen görüntülerin sayısını gösteren başlangıç ekranı. Sunucu durumunu hızlıca değerlendirmeye olanak tanır.
Konteynerler
- Merkezi yönetim bölümü. Tüm konteynerlerin bir listesini görüntüler.
- Konteyner yönetimi: Bir konteyneri başlatma, durdurma, yeniden başlatma, silme tek bir tıklama ile yapılır.
- Loglar: "Loglar" sekmesi, konteyner loglarını gerçek zamanlı olarak görüntüleme erişimi sağlar.
- İnceleme: JSON formatında konteyner hakkında tam bilgi gösterir: ortam değişkenleri, montaj noktaları, ağ ayarları.
- İstatistikler: Her konteyner için CPU, bellek ve ağ tüketim grafikleri. Bireysel hizmetlerin kaynak tüketimini belirlemeye yardımcı olur.
- Yürütme konsolu: Bir konteyner içinde komut çalıştırmak için web terminali açma yeteneği.
Yığınlar
Web arayüzünde Docker Compose'un uygulanması. Çoklu konteyner uygulamaları dağıtmak için YAML dosyalarını doğrudan tarayıcı üzerinden yüklemenize veya oluşturmanıza olanak tanır.
Görüntüler
- Docker görüntü yönetimi.
- Çekme: Görüntüleri (örneğin, nginx:latest veya mysql:8.0) doğrudan arayüzden indirme yeteneği.
- Kaldırma: Disk alanını boşaltmak için kullanılmayan görüntüleri temizleme.
Hacimler
Kalıcı veri hacimlerinin yönetimi. Mevcut hacimleri, konteynerlere bağlantılarını ve kapladıkları alanı gösterir. Veritabanları ve kullanıcı verileri için kritik öneme sahiptir.
Ağlar
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 hacmini kaldırın (uyarı: bu işlem geri alınamaz):
sudo docker volume rm portainer_data
portainer_data hacmini 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 yol açacaktır.
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 için, Portainer'ın ek güvenlik yapılandırması gereklidir.
Ters Proxy Kullanımı (Nginx/Apache)
Bir alt alan adı (örneğin, portainer.domain.com) ayarlamanız ve trafiği Nginx üzerinden proxy yapmanız önerilir. Bu, şunları sağlayacaktır:
- Geçerli bir SSL sertifikası kullanımı (Let's Encrypt'ten ücretsiz veya Sectigo gibi ücretli bir SSL).
- Merkezi erişim kaydı.
- Ek kimlik doğrulama yapılandırma yeteneği.
1. Nginx Kurulumu ve Yapılandırması
Nginx'i kurun:
sudo apt install -y nginx # Debian/Ubuntu için # veya sudo dnf install -y nginx # CentOS/Rocky Linux için
Portainer için bir yapılandırma dosyası oluşturun:
sudo nano /etc/nginx/sites-available/portainer.conf
Sunucunun IP'sine işaret eden alan adınızla <YOUR_DOMAIN> kısmını değiştirerek aşağıdaki yapılandırmayı ekleyin:
server { listen 80; server_name
; 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; # Uzun işlemler için zaman aşımı 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
Eğer kontrol başarılıysa, Nginx'i yeniden başlatın:
sudo systemctl restart nginx
2. HTTPS Kurulumu (önerilir)
Certbot'u kurun:
sudo apt install -y certbot python3-certbot-nginx
Bir SSL sertifikası alın:
sudo certbot --nginx -d
<YOUR_DOMAIN> kısmını alan adınızla değiştirin.
Kurulum sırasında, e-posta adresinizi girin, örneğin admin@<YOUR_DOMAIN>, ardından iki kez Y tuşuna basın.
Otomatik sertifika yenilemeyi kontrol edin:
sudo systemctl list-timers | grep certbot
Güvenlik Duvarı Yapılandırması
Portainer portlarına doğrudan erişim kısıtlanmalıdır. 8000 ve 9443 portlarına yalnızca güvenilir IP adreslerinden erişime izin verin.
Güvenlik duvarı kurallarıyla dikkatli olun. 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
Yeni Portainer sürümlerinin yayınlanmasını takip etmek ve potansiyel güvenlik açıklarını ortadan kaldırmak için konteyneri zamanında güncellemek önerilir.
Çalışmayı Doğrulama
Portainer'ın düzgün çalıştığını doğrulamak için aşağıdaki işlemleri gerçekleştirin.
1. Görsel kontrol: "Konteynerler" bölümünde, portainer konteynerinin çalışır durumda olduğundan emin olun.
2. Test konteyneri oluşturma:
- "Konteynerler" bölümüne gidin, "Konteyner ekle" düğmesine tıklayın.
- "Ad" alanına test-nginx belirtin.
- "Görüntü" alanına nginx:alpine belirtin.
- "Port eşleme" bölümünde, ana bilgisayar portu 8080, konteyner portu 80 belirtin.
- "Konteyneri dağıt" düğmesine tıklayın.
3. Erişilebilirlik kontrolü:
- Konteynerin çalışır durumda bir durumla listede görünmesini bekleyin.
- Bir tarayıcı açın ve
http://<YOUR_IP_ADDRESS>:8080adresine gidin. Nginx karşılama sayfası görüntülenmelidir.
4. Yönetim kontrolü:
- Portainer'da test-nginx konteynerini bulun ve "Durdur" düğmesine tıklayın.
- Tarayıcıda Nginx sayfasını yenileyin – erişim sağlanamamalıdır.
- "Başlat" düğmesine tıklayın – sayfaya erişim geri gelmelidir.
Sorun Giderme
Sorun 1: https://<YOUR_IP_ADDRESS>:9443 adresinde Portainer web arayüzü açılamıyor
Olası neden: Güvenlik duvarı 9443 portunu engelliyor.
Çözüm: Güvenlik duvarı kurallarını kontrol edin ve portun açık olduğundan emin olun. UFW için: sudo ufw status | grep 9443.
Sorun 2: Docker komutlarını çalıştırırken "Docker daemon'a bağlanılamıyor" hatası.
Olası neden: Docker daemon çalışmıyor veya kullanıcı izinlere sahip değil.
Çözüm: Daemon'u başlatın: sudo systemctl start docker. Kullanıcıyı docker grubuna eklediyseniz, oturumu kapatıp tekrar açın.
Sorun 3: Portainer konteyneri başlamıyor ve hemen çıkıyor (durum exited).
Olası neden: Port çakışması veya bozuk bir görüntü.
Çözüm: 9443 portunun başka bir uygulama tarafından kullanılıp kullanılmadığını kontrol edin: sudo ss -tulpn | grep 9443. Portu yeniden atamayı deneyin ve konteyneri yeniden başlatın: sudo docker restart portainer.
Sonuç
Portainer CE, Docker konteynerlerinin görsel izlenmesi ve yönetimi için etkili bir araç sağlar. Konteynerlerin durumunu hızlıca değerlendirme, kaynak tüketim grafiklerini analiz etme ve SSH üzerinden bağlanmadan tipik işlemleri gerçekleştirme yeteneği, olaylara yanıt süresini azaltır ve günlük yönetimi basitleştirir.
Bu araç, geliştiricilere veya daha az deneyimli personele konteyner yönetimine sınırlı erişim sağlamak gerektiğinde, sunucu komut satırına doğrudan erişim vermeden 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
Sahibi: Teknik Dokümantasyon Ekibi