Ubuntu'ya Docker Nasıl Kurulur
Bu sayfada
Docker uygulamaları konteynerlerde çalıştırır: her biri ihtiyaç duyduğu her şeyi yanında getirir, bu yüzden dizüstü bilgisayarınızda da sunucuda da aynı şekilde çalışır. Web siteleri, veritabanları, botlar ve oyun sunucuları tek bir komutla ya da tek bir Compose dosyasıyla başlatılabilir.
Bu rehber Docker Engine ve Docker Compose'u Docker'ın resmi deposundan Ubuntu 24.04 veya 22.04'e kurar, ardından gerçek bir sunucuda önemli olan ayarları ele alır: izinler, loglar ve güvenlik duvarı.
Başlamadan önce
- Desteklenen bir Ubuntu: Docker, Ubuntu 26.04, 24.04 ve 22.04 LTS'nin 64 bit sürümlerini destekler. Sürümünüzü
cat /etc/os-releaseile kontrol edin. - Konteyner değil, KVM sunucu: Docker kendi çekirdek özelliklerine ihtiyaç duyar. Her KVM VPS üzerinde çalışır, ancak konteyner tabanlı (OpenVZ veya LXC) paketlerde çoğu zaman çalışmaz.
- Root ya da sudo yetkili bir kullanıcı. Aşağıdaki komutlar
sudokullanır; root olarak giriş yaptıysanız bunu atlayabilirsiniz.
Sunucularda Ubuntu'nun kendi deposundaki docker.io paketinden ve Snap sürümünden kaçının: yeni sürümler önce Docker'ın deposuna gelir ve Docker'ın kendi belgeleri de onu kullanır.
Docker gerçek bir sanal makineye ihtiyaç duyar: Ubuntu ve tam root erişimli HytHost KVM VPS paketleri aylık €2.92'dan başlar.
VPS paketlerini görAdım 1: Çakışan paketleri kaldırın
Docker'ı daha önce başka bir kaynaktan kurduysanız, önce o paketleri kaldırın. Yeni bir sunucuda apt yalnızca hiçbirinin kurulu olmadığını bildirir:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
/var/lib/docker/ içindeki imajlar ve volume'lar bununla silinmez.
Adım 2: Docker'ın deposunu ekleyin
Docker'ın belgelerinden alınan bu komutlar, Docker'ın imzalama anahtarını ve Ubuntu sürümünüz için apt deposunu ekler:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
Adım 3: Docker ve Compose'u kurun
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Bu, Docker Engine'i, komut satırı aracını, Buildx derleyicisini ve Compose eklentisini kurar. Çalıştığını kontrol edin:
sudo docker run hello-world docker compose version
İlk komut küçük bir test imajı indirir ve bir karşılama mesajı yazdırır. Ubuntu'da Docker açılışta otomatik başlar, yani etkinleştirmeniz gereken bir şey yoktur.
Compose, boşluklu docker compose komutudur. Tireli eski docker-compose, emekliye ayrılmış ilk sürümdür; onu hâlâ kullanan rehberler yeni komutla da çalışır.
Adım 4: İzinler ve log döndürme
docker'ı sudo olmadan çalıştırmak. Kullanıcınızı docker grubuna ekleyin, ardından çıkış yapıp tekrar giriş yapın:
sudo usermod -aG docker $USER
Docker'ın kendisinin de uyardığı gibi bu grup root düzeyinde yetki verir: içindeki herkes tüm sunucuyu kontrol edebilir. Yalnızca root vereceğiniz kullanıcıları ekleyin.
Log boyutunu sınırlayın. Varsayılan olarak konteyner logları sınırsız büyür ve diski doldurabilir. /etc/docker/daemon.json dosyasını oluşturun:
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
Ardından sudo systemctl restart docker çalıştırın. Sınır, değişiklikten sonra oluşturulan konteynerlere uygulanır; bu yüzden mevcut olanları yeniden oluşturun.
İlk Compose dosyası
Compose konteynerlerinizi tek bir dosyada tanımlar. İçinde compose.yaml olan bir klasör oluşturun:
services:
web:
image: nginx:stable
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
docker compose up -d ile başlatın, docker compose ps ile kontrol edin ve loglarını docker compose logs ile okuyun. restart: unless-stopped, bir çökme ya da yeniden başlatmadan sonra konteyneri geri getirir. Port, bir sonraki bölümde açıklandığı gibi bilerek 127.0.0.1 adresine bağlanmıştır.
Docker ve ufw: güvenlik duvarı tuzağı
Bu neredeyse herkesin başına gelir. Bir port yayınladığınızda, örneğin -p 8080:80, Docker ufw kurallarından önce uygulanan kendi güvenlik duvarı kurallarını ekler. ufw kapalı dese bile port internete açıktır.
- Portları localhost'a bağlayın; bunlara yalnızca sunucunun kendisi ihtiyaç duyuyorsa, örneğin bir veritabanı ya da reverse proxy arkasındaki bir uygulama için:
127.0.0.1:8080:80. - Veritabanı portlarını hiç yayınlamayın; bunun yerine konteynerlerin birbirine bir Docker ağı üzerinden ulaşmasını sağlayın.
- Kaynak adrese göre filtreleme için Docker'ın kendi kurallarından önce kontrol ettiği
DOCKER-USERiptables zincirine kural ekleyin.
Aynısı Docker'da çalışan oyun sunucuları için de geçerlidir; bkz. oyun sunucuları için VPS nasıl kurulur.
HytHost VPS üzerinde Docker
HytHost VPS paketleri KVM üzerinde çalışır; böylece her VPS'in kendi çekirdeği olur ve Docker kısıtlama olmadan çalışır. Sipariş sırasında Ubuntu 24.04 veya 22.04'ü seçin, SSH ile bağlanın ve yukarıdaki adımları izleyin. Tam root erişimi, SSD depolama ve DDoS koruması elde edersiniz; konteynerleriniz büyüdükçe daha sonra daha büyük bir pakete geçebilirsiniz.
Sıkça sorulan sorular
Docker, Ubuntu 26.04, 24.04 ve 22.04 LTS'nin 64 bit sürümlerini destekler. Linux Mint gibi Ubuntu tabanlı diğer sistemler resmi olarak desteklenmez.
Canlı bir sunucuda hayır. Docker, bu kolaylık betiğinin geliştirme ortamları için olduğunu ve canlı ortamlar için önerilmediğini belirtir; ayrıca yeni bir ana sürüme atlayabilir. Bunun yerine depo yöntemini kullanın.
Tireli docker-compose eski, emekliye ayrılmış sürümdür. Bugün Compose, docker compose olarak kullanılan ve docker-compose-plugin paketiyle kurulan bir Docker eklentisidir.
Docker'ın yayınladığı portlar ufw'yi atlar. Yerel kalması gerekiyorsa portu 127.0.0.1 adresine bağlayın ya da DOCKER-USER zincirinde filtreleyin.
KVM VPS'te evet. OpenVZ gibi konteyner tabanlı VPS paketleri çoğu zaman Docker çalıştıramaz ya da sağlayıcıdan özel ayarlar gerektirir.
Konteynerlerinizi bir VPS'te çalıştırın
HytHost KVM VPS paketleri Docker'ı kısıtlamasız, tam root erişimi ve Ubuntu 24.04 ile çalıştırır; aylık €2.92'dan başlayan fiyatlarla.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursBu rehber işine yaradı mı?