Ana içeriğe geç

Ubuntu'da Docker Kurulumu: Kurulumdan İlk Container'a

İlk container’laştırılmış uygulamanızı çalıştırmaya, taze bir işletim sistemi kurulumundan itibaren yalnızca birkaç komutla ulaşabilirsiniz. Bu nihai Docker Ubuntu kurulum rehberiyle nasıl yapacağınızı öğrenin.
· 11 dk. oku

Yapay Zeka ile Keşfedin

Artık "benim makinemde çalışıyor" demeyi bırakmak istiyorsanız, container’laştırma doğru yoldur.

Kısaca, container’laştırma uygulamalarınızı container adı verilen hafif ve izole ortamlara paketlemenizi sağlar. Bu container’lar, kod ve bağımlılıklar gibi uygulamayı çalıştırmak için gereken her şeyi içerir; gereksiz hiçbir şeyi değil. Container’laştırılmış bir uygulama, dizüstü bilgisayarınızda, test sunucusunda veya prodüksiyonda olsun, farklı ortamlarda tutarlı şekilde çalışır.

Docker, 2025’te de uygulamaları container’laştırmak için başvurulan platform olmaya devam ediyor. Her işletim sisteminde çalışabilir, ancak çoğu geliştirme aracında olduğu gibi UNIX tabanlı sistemler tercih edilir.

Bu yazıda, Ubuntu’ya Docker’ı nasıl kuracağınızı, ilk container’ınızı nasıl başlatacağınızı ve çalışan container’ları nasıl yönetip izleyeceğinizi öğreneceksiniz.

Kurulum basit ama birkaç adım içeriyor. Hadi başlayalım!

Docker ve Kubernetes aynı şey mi? Her geliştiricinin bilmesi gereken tüm farklar burada.

Ubuntu Sisteminizi Hazırlama

Ubuntu’da Docker’ı kurmadan önce halledilmesi gereken birkaç hazırlık işi var. Bu bölümde hepsini ele alacaksınız.

Öncelikle, Desktop veya Server sürümü fark etmeksizin bir Ubuntu sistemi çalıştırdığınızdan emin olun. Biz Ubuntu Server 24.04 kullanıyoruz:

İşletim sistemi detayları

Görsel 1 - İşletim sistemi detayları

Yukarıdaki görseldekine benzer bir çıktı görüyorsanız, hazırsınız demektir.

Sistem gereksinimlerini kontrol edin

Docker’ı kurmadan önce, sisteminizin çalıştırmak için yeterli kaynağa sahip olduğundan emin olun.

Docker web sitesinde (uyumlu CPU mimarileri dışında) asgari gereksinimler belirtilmese de, Docker’ın kendisini çalıştırmak için aşağıdakilerin yeterli olduğunu gördük:

  • İşletim sistemi: Ubuntu Desktop/Server 20.04 veya üzeri  
  • CPU mimarisi: 64-bit (x86_64 veya arm64)  
  • Bellek: 512 MB RAM  
  • Depolama: 5 GB  

Bu özelliklerde bir makine Docker’ı çalıştırmanıza izin verir ama fazlasını beklemeyin. Karmaşık container’lar veya çoklu container uygulamaları çalıştırmayı beklemeyin.

Daha fazlasını yapmayı planlıyorsanız, en az 2 GB RAM, 25 GB depolama ve modern bir CPU hedefleyin.

Ubuntu sisteminizi güncelleyin

Docker’ı taze bir Ubuntu Server örneğinde çalıştırıyoruz, bu nedenle Docker ön koşullarını kurmak için gereken tüm komutları sağlayacağız.

Önce, aşağıdaki komutu çalıştırarak sisteminizin paket listesini güncelleyin ve mevcut paketleri yükseltin:

sudo apt update && sudo apt upgrade -y

Bu işlem birkaç dakika sürebilir, ancak paket yöneticinizin en son paket sürümlerini ve güvenlik güncellemelerini almasını sağlar.

Ön koşulları sağlayın

Docker’ın doğru şekilde kurulması ve çalışması için birkaç bağımlılık gereklidir. Bunları kurmak için şu komutu çalıştırın:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

Kısacası, yukarıdaki komut HTTPS üzerinden paket indirmeyi etkinleştirir ve Docker GPG anahtarlarını almak için gerekli araçları kurar (bunları daha sonra ele alacağız).

Ve hepsi bu—artık sisteminiz Docker kurulumuna hazır!

Ubuntu’da Docker Kurulumu

Sistem ön koşulları tamamlandığında, Ubuntu’da Docker kurmak dört adımdan oluşur.

Adım 1: Docker’ın resmi GPG anahtarını ekleyin

Docker’ın GPG (GNU Privacy Guard) anahtarı, Docker paketlerini ve depolarını imzalamak için kullanılır ve Docker imajlarının ve paketlerinin bütünlüğünü ve kimliğini doğrular.

Anahtarı indirmek ve APT ile uyumlu dönüştürülmüş bir sürümünü /usr/share/keyrings içine kaydetmek için uygun kabuk komutunu çalıştırarak başlayın.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Adım 2: Docker’ın resmi APT deposunu ekleyin

Şimdi, resmi Docker deposunu sisteminize ekleyin.

Aşağıdaki komut, önceden kaydedilen GPG anahtarını deponun kimliğini doğrulamak için kullanır ve ardından sistemi paket kaynaklarına ekler:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ardından, yeni depoyu dahil etmek için sisteminizin paket listesini güncelleyin:

sudo apt update

Adım 3: Docker’ı kurun

Depo yapılandırıldığına göre, Ubuntu’ya Docker’ı kurmaya hazırsınız.

Kurulum komutu, çekirdek Docker motorunu, komut satırı arayüzünü ve container yürütümünü yöneten çalışma zamanını kuracaktır:

sudo apt install -y docker-ce docker-ce-cli containerd.io

Kurulum tamamlandığında, başarılı kurulumun doğrulandığını bildiren bir çıktı görmelisiniz:

Docker kurulum sonuçları

Görsel 2 - Docker kurulum sonuçları

Adım 4: Docker kurulumunu doğrulayın

Docker artık sisteminize kurulmuş olmalı.

Doğrulamak için Docker sürümünü konsola yazdırın. Kurulum başarılıysa bir sürüm numarası görmelisiniz:

docker --version

Kurulu Docker sürümü

Görsel 3 - Kurulu Docker sürümü

Ocak 2025 sonu itibarıyla Docker sürüm 27.5.1 en güncel sürümdür ve Ubuntu Server üzerinde başarıyla çalıştırıyoruz.

Kurulum Sonrası Adımlar

Artık Docker kurulu ve uygulamalarınızı container’laştırmaya hazırsınız.

Peki container’laştırma nedir? Containerization and Virtualization kavramları kursumuz temelleri öğretecek.

Bunu yapmadan önce, en iyi verimi almak için üç ek yapılandırma adımını tamamlamanızı öneririz. Bu bölüm, Docker’ı çalıştırmayı sistem açılışında otomatikleştirmek veya görüntüleri ve container’ları root olmayan kullanıcı olarak yönetmek istiyorsanız sizin için.

Adım 1: Docker servisinin başlatılması ve etkinleştirilmesi

Docker servisi şu anda sisteminizde çalışıyor, ancak yeniden başlatma sonrasında otomatik başlamayacaktır.

Docker’ın açılışta otomatik başlamasını sağlamak için servisi systemctl ile etkinleştirin:

sudo systemctl enable docker

Bizim çıktımıza benzer bir çıktı görmelisiniz:

Docker servisinin açılışta etkinleştirilmesi

Görsel 4 - Docker servisinin açılışta etkinleştirilmesi

İleride Docker’ın çalışmadığına dair bir mesaj görürseniz (ki olmamalı), aşağıdaki komutla Docker’ı elle başlatabilirsiniz:

sudo systemctl start docker

Artık sisteminiz açık olduğu sürece Docker çalışır durumda kalacaktır.

Adım 2: Docker durumunu kontrol edin

Docker servisini yönetmek için kullanabileceğiniz birkaç ek systemctl komutu vardır.

Örneğin, status komutu bir servisin durumunu gösterir; en yaygın halleri active, inactive veya failed’dır. Başka olası durumlar da olsa, en sık karşılaşılan üçü bunlardır:

sudo systemctl status docker

Docker servis durumu

Görsel 5 - Docker servis durumu

Docker servisiniz aktifse, her şey düzgün çalışıyor demektir.

Docker veya başka bir servis için farklı bir durum görürseniz, servisi yeniden başlatmak sorunu çözmelidir:

sudo systemctl restart docker

Yeniden başlattıktan sonra, servisin çalıştığını doğrulamak için durumu tekrar kontrol edebilirsiniz.

Adım 3: Docker’ı root olmayan kullanıcı olarak yönetin

Varsayılan olarak Docker komutlarını çalıştırmak sudo gerektirir ki bu zahmetli olabilir. Bu, herhangi bir docker komutundan önce sudo yazmanız gerektiği anlamına gelir.

Neyse ki, root olmayan kullanıcıların Docker komutlarını çalıştırmasına izin vermenin kolay bir yolu var—geçerli kullanıcıyı docker grubuna eklemek:

sudo usermod -aG docker $USER

Yukarıdaki komutu çalıştırdıktan sonra, değişikliğin etkili olması için oturumu kapatıp tekrar açın. Artık süper kullanıcı ayrıcalıkları olmadan Docker komutlarını çalıştırabilmelisiniz.

Bunu bir sonraki bölümde doğrulayacağız.

Docker Kurulumunu Test Etme

Docker artık kuruldu ve yapılandırıldı. Ayrıca açılışta otomatik çalışıyor ve kullanıcınızın komutları doğrudan çalıştırmasına izin veriyor.

Bu bölümde, iki container çalıştırarak işi tamamlayacağız—biri basit bir "Hello, World!" örneği, diğeri ise bir Python betiği için.

Adım 1: Test amaçlı bir Docker container’ı çalıştırın

Docker, yalnızca Docker’ın düzgün çalıştığını doğrulamak için kullanılan hello-world adlı basit bir test imajı sağlar.

İmajı başlatmak için aşağıdaki komutu çalıştırın:

docker run hello-world

İmaj yerelde bulunamadığı için Docker otomatik olarak web’den indirecektir. Birkaç saniye sonra buna benzer bir çıktı görmelisiniz:

Docker hello world örneği

Görsel 6 - Docker hello world örneği

Kısacası bu, Docker’ın doğru kurulduğunu, Docker daemon’unun çalıştığını ve sisteminizin Docker Hub’dan imaj çekebildiğini doğrular.

Adım 2: İlk “gerçek” container’ınızı çalıştırın

İmajları sıfırdan oluşturmak istiyorsanız, bu bölüm sizin için.

Çalıştırıldığında özel bir Python betiğini yürüten Python 3.9 çalıştıran basit bir imaj oluşturacağız.

Öncelikle, ayrılmış bir klasör ve çalıştırılacak bir app.py dosyası oluşturun:

mkdir python-docker-test && cd python-docker-test
nano app.py

Dosya yalnızca basit bir print() komutu içerir; elbette daha karmaşık mantıkla genişletebilirsiniz:

print("Hello from Docker running on Ubuntu!")

Aynı klasörde, Docker’a imajı adım adım nasıl oluşturacağını söyleyen bir Dockerfile oluşturun:

nano Dockerfile

Bu üç satır yeterlidir:

FROM python:3.9-slim
COPY app.py /app.py
CMD ["python", "/app.py"]

Özünde, Docker’a Docker Hub’dan python:3.9-slim imajını çekmesi, app.py betiğini container’a kopyalaması ve ardından betiği çalıştırması talimatı verilir.

Şu ana kadar çalışma dizininizde aşağıdaki dosyalar bulunmalı:

Demo Python uygulaması içeriği

Görsel 7 - Demo Python uygulaması içeriği

İmajı oluşturmak için aşağıdaki komutu çalıştırın:

docker build -t python-hello .

Yukarıdaki komut, mevcut dizinde (.) yeni bir imaj oluşturur ve ona python-hello etiketi atar.

Docker imajı oluşturma

Görsel 8 - Docker imajı oluşturma

İmajı çalıştırmak için docker run komutunu imaj etiketiyle birlikte kullanın. İsteğe bağlı --rm bayrağı, container çıktıktan sonra kaldırılmasını sağlar; bu da Python betiği çalışmasını tamamladıktan hemen sonra gerçekleşir:

docker run --rm python-hello

Docker içinde Python betiği çalıştırma

Görsel 9 - Docker içinde Python betiği çalıştırma

Ve işte bu kadar; Ubuntu üzerinde çalışan Docker ile ilk Python uygulamanızı başarıyla container’laştırdınız!

Docker’ın makine öğrenimi için kullanımına bakıyorsanız, DataCamp’in Containerization: Docker and Kubernetes for Machine Learning yazısı takip için önerilir.

Ubuntu’da Docker’ı Güncelleme ve Kaldırma

Docker’ı kendi ortamınızda çalıştırmak size tam kontrol sağlar, ancak en son güncellemeleri, yeni özellikleri ve güvenlik yamalarını takip etme sorumluluğunu da beraberinde getirir.

Bu bölümde Docker’ı güncelleme ve sisteminizden tamamen kaldırma gibi temel işlemlerin nasıl yapılacağını açıklıyoruz.

Docker’ı güncelleme

Docker’ı güncellemek iki ana adımdan oluşur:

  • En son Docker sürümünü almak için paket listesini güncelleme.
  • Docker’ı (çekirdek, CLI ve container yönetim çalışma zamanı) en yeni sürüme yükseltme.

Ubuntu’da Docker’ı güncellemek için terminalde şu komutları çalıştırın:

sudo apt update
sudo apt upgrade -y docker-ce docker-ce-cli containerd.io
docker --version

docker -- version komutu yüklü olan mevcut sürümü gösterir. Docker’ın başarıyla güncellenip güncellenmediğini doğrulamanın en kolay yolu budur.

Docker’ı kaldırma

Docker’ı sisteminizden kaldırmanız gerekiyorsa, Docker ve ilgili paketleri kaldırarak ve kalan Docker ile ilişkili dosya ve yapılandırmaları silerek başlamalısınız.

Ek olarak, APT kaynaklarından Docker deposunu isteğe bağlı olarak kaldırabilirsiniz.

Aşağıdaki dört komut Ubuntu sisteminizden Docker’ı kaldıracaktır; ancak unutmayın, yalnızca ilk üçü zorunludur:

sudo apt remove -y docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# Optional
sudo rm /etc/apt/sources.list.d/docker.list

Bu komutları çalıştırdıktan sonra, docker --version komutunu vermek Docker’ın artık kurulu olmadığını belirten bir hata döndürmelidir.

Ubuntu’da Docker için En İyi Uygulamalar

Docker’ı yönetmek sürekli bakım gerektirir; kullanılmayan kaynakları kaldırmak ve performansı izlemek sizin sorumluluğunuzdadır.

Bu bölümde, Ubuntu üzerinde Docker çalıştırırken düzenli olarak yapmanız gereken iki temel temizlik görevini ele alacağız.

Docker kaynaklarını düzenli olarak temizleyin

Zamanla, kullanılmayan Docker imajları, container’lar, ağlar ve birimler birikerek önemli miktarda disk alanı tüketebilir.

Bu kaynakları temizlemeye budama (pruning) denir; ayrıntılı açıklaması bu yazının kapsamı dışındadır.

Sadece bu komutu aklınızda tutun — tüm kullanılmayan container’ları, imajları, birimleri ve ağları tek seferde kaldırır:

docker system prune -a -f

Kaynak budama

Görsel 10 - Kaynak budama

Sadece 10 kB geri kazandık, ancak daha “ciddi” bir ortamda bu komut çoğu zaman onlarca gigabayt disk alanını serbest bırakabilir.

Docker kurulumunuzu güvenli hale getirin

İki önemli güvenlik konusunu zaten ele aldık — Docker’ı güncel tutmak ve süper kullanıcı izinlerini yönetmek.

Bunlara ek olarak, Ubuntu’da Docker güvenliğini artırmak için birkaç adım daha:

  • Container ayrıcalıklarını sınırlayın: Mümkün oldukça --privileged bayrağıyla container çalıştırmaktan kaçının; bu bayrak, container’ları ana sistemden izole eden birçok güvenlik kontrolünü devre dışı bırakır.
  • Yalnızca resmi ve güvenilir imajları kullanın: Doğrulanmamış üçüncü taraf kayıtlarından imaj çekmeyin. Docker Hub ve özel kayıtlar gibi güvenilir kaynaklarla sınırlı kalın.
  • Docker Content Trust’ı (DCT) etkinleştirin: Bu ortam değişkenini ayarlamak yalnızca imzalı ve doğrulanmış imajların kullanılmasını sağlar.

Docker performansını izleyin

Docker CLI, container performansını izlemenize ve olası sorunları belirlemenize yardımcı olacak güçlü araçlar içerir.

Bunlara geçmeden önce, container başladıktan sonra çalışır durumda kalması için app.py dosyasını değiştirelim:

import time

time.sleep(10000)
print("Hello from Docker running on Ubuntu!")

Sebebi basit — performansını izlemek için çalışan bir container’a ihtiyacımız var.

ps komutuyla başlayalım. Basitçe, şu anda çalışan tüm container’ları listeler:

docker ps

Çalışan Docker container’ları

Görsel 11 - Çalışan Docker container’ları

Çıktı çok şey söylemese de, ileri inceleme için CONTAINER ID alanı kritiktir.

Şimdi, çalışan tüm container’lar için CPU, bellek ve ağ tüketimi dahil gerçek zamanlı kaynak kullanımını gösteren stats komutunu inceleyelim:

docker stats

Container istatistikleri

Görsel 12 - Container istatistikleri

Bir container’ın kaynak kullanımı ve yapılandırmasının ayrıntılı dökümü gerekiyorsa, inspect komutunu kullanın.

Sadece container kimliğini belirtin:

docker inspect <container_id>

Container detayları

Görsel 13 - Container detayları

Bir Docker container’ı ile ilgili sorun yaşıyorsanız, logs komutu sorunu teşhis etmeye ve olası nedenini belirlemeye yardımcı olabilir.

Bu komut da container kimliği gerektirir:

docker logs <container_id>

Container günlüklerini gösteren terminal

Görsel 14 - Container günlükleri

Bazen, çalışan bir container’a doğrudan bağlanmanız gerekebilir. Container kimliğini biliyorsanız bu oldukça basittir:

docker exec -it <container_id> bash

Container günlüklerini gösteren terminal

Görsel 15 - Container günlükleri

Önceki komut, belirtilen Docker container’ı içinde bir kabuk açar ve dosyalara doğrudan erişip değiştirmenize olanak tanır.

Ubuntu’da Docker’ı Özetlemek

Bugün, Ubuntu’da Docker’ı nasıl kuracağınızı, yapılandıracağınızı ve yöneteceğinizi öğrendiniz. 

Tüm adımları izlediyseniz, sisteminizde açılışta otomatik başlayan ve container’ları yönetmek için süper kullanıcı izinleri gerektirmeyen şekilde Docker çalışıyor olmalı. Ayrıca Docker kurulumunu doğrulamayı, test container’ları çalıştırmayı ve hatta ilk özel Python container’laştırılmış uygulamanızı oluşturmayı da öğrendiniz.

Çok şey var, ama bu sadece bir başlangıç. Container’laştırma hikayesinin çok daha fazlası var ve Docker’da yetkinleşmek için resmi kaynaklarımıza göz atmanızı şiddetle tavsiye ederiz:

SSS

Docker ne için kullanılır?

Docker, uygulamaların hafif container’lara dağıtımını otomatikleştirmek için kullanılır; bir uygulamayı ve bağımlılıklarını, ana ortamdan bağımsız ve tekrarlanabilir izole bir ortama paketler.

Ubuntu Docker için iyi midir?

Ubuntu, Docker çalıştırmak için harika bir seçimdir; hem Desktop hem Server sürümleri dahil. Geliştiricilerin sevdiği, popüler ve kararlı bir Linux dağıtımıdır. Bununla birlikte, Docker’ı diğer Linux dağıtımlarında da çalıştırabilirsiniz.

Neden Docker kullanmalıyım?

Docker; geliştirme/test/prod ortamlarında tutarlı bir çevre, daha hızlı uygulama dağıtımı ve daha kolay ölçekleme avantajları sağlar; tüm bunları yaparken uygulamayı farklı ortam ve sistemler arasında taşımayı da kolaylaştırır.

Docker ile sanal makineler arasındaki fark nedir?

Docker container’ları ana sistemin işletim sistemi çekirdeğini ve kaynaklarını paylaşır; bu da onları sanal makinelerden daha hafif ve hızlı yapar. VM’ler ayrı işletim sistemleri çalıştırır ve daha fazla sistem kaynağı gerektirir.

Docker’ın düzgün çalıştığını nasıl anlarım?

Öncelikle docker –version komutunu çalıştırarak Docker’ın kurulu olup olmadığını kontrol edebilirsiniz. Ayrıca, hello-world gibi basit bir test container’ı çalıştırmak Docker’ın işlevsel olduğunu doğrulayacaktır.

Dario Radečić

Yazar

Dario Radečić

Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.

Konular

İlgili