/linux

Linux’a Docker Kurulumu ve Yaygın Hatalar

Docker, yazılımların tutarlı ve izole ortamlarda çalıştırılmasını sağlayan container teknolojisidir. Linux üzerinde Docker kurulumu ile ilgili bir çok makale olsa da, kurarken yaşadığım bazı hatalar oldu: paket deposu ekleme sorunları, root izinleri, daemon’ın başlamaması, systemd ile ilgili problemler vb.

Bu yazımda, Linux’a Docker’ı nasıl kuracağınızı ve bu süreçte karşılaşabileceğiniz hataları nasıl çözebileceğinizi anlatmaya çalışıyor olacağım.


1- Ön Gereksinimler

Aşağıda desteklenen linux dağıtımları bulunuyor. Ben daha önceden Arch, ubuntu, debian da deneyimledim. Diğerleri konusunda %100 bir bilgim yok fakat bir linux dağıtımının destelememe gibi durumu olabileceğini çok da sanmıyorum.

Desteklenen Linux dağıtımları:

  • Ubuntu
  • Debian
  • Fedora
  • CentOS / Alma / Rocky Linux
  • Arch Linux
  • OpenSUSE

Aşağıdaki adımlar self-hosted sistem özelinde olduğu için ağırlıklı olarak Debian/Ubuntu temellidir, ancak diğer distro farklarını da eklemeye çalıştım.


2- Eski Docker kurulumu varsa kaldır

sudo apt remove docker docker-engine docker.io containerd runc

Bu komut verileri silmez, sadece paketleri kaldırır.


3- Gereken paketleri kur

sudo apt update sudo apt install ca-certificates curl gnupg

4- Docker repository ekleme

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

5- Docker Engine kur

sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

6- Docker’ı başlat

sudo systemctl enable docker sudo systemctl start docker

Servisin durumunu kontrol:

sudo systemctl status docker

7- İlk test

sudo docker run hello-world

Her şey yolundaysa bir “Hello from Docker!” mesajı görürsünüz.


⚠️ Kurulum sırasında en sık alınan hatalar

docker: command not found

Docker kurulu değildir ya da PATH bozuk

Çözüm:

sudo apt update sudo apt install docker-ce

Cannot connect to the Docker daemon

Genelde service çalışmıyor

sudo systemctl start docker sudo systemctl status docker

permission denied while trying to connect to the Docker daemon

Sebep: root gerektiriyor. simplest solution: user’i docker grubuna eklemek

sudo usermod -aG docker $USER

Sonra yeniden giriş yap veya terminali kapat-aç:

newgrp docker

Test:

docker ps

Failed to start Docker daemon, missing cgroup

Çoğunlukla systemd/WSL

sudo systemctl enable containerd sudo systemctl restart containerd sudo systemctl restart docker

Arch Linux’ta kurulum

sudo pacman -S docker sudo systemctl enable docker sudo systemctl start docker

Compose:

sudo pacman -S docker-compose

🐳 Docker Compose kurulum

Docker ile birlikte gelmeyen eski paket:

sudo apt install docker-compose

Modern sistemlerde:

docker compose version

Çalışıyorsa yeniden yüklemeye gerek yoktur.


Root-less Docker kullanım notu

Root yetkisi olmadan docker kullanma seçeneği vardır, ama genellikle system-wide senaryolarda önerilmez. Container network optimizasyonlarında root yetkisi gerekir.

Rootless için:

dockerd-rootless-setuptool.sh install

Firewall & network notları

Firewalld veya ufw kullanıyorsanız ek izinler gerekebilir:

sudo ufw allow 2375/tcp sudo ufw allow 2376/tcp

VPN + Docker network kullanıyorsanız DNS problemi yaşanabilir → container içinde hosts dosyası değiştirilebilir.