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.