Hata mesajını gördüğünüzde “Docker arka plan programı 'unix:///var/run/docker.sock' adresine bağlanamıyor.Bu genellikle `docker run` veya `docker ps` gibi komutların çalışmayacağı anlamına gelir. Sonuç olarak, Docker konteynerleriyle etkileşim kuramazsınız. Bu hata, Docker istemcisinin, bilgisayarınızdaki tüm Docker işlemlerini yöneten temel program olan Docker daemon'una bağlanamaması nedeniyle oluşur.

Docker bağlantı hatası

Bu sorunun en yaygın nedeni, Docker servisinin sisteminizde çalışmıyor olmasıdır. Diğer olası nedenler arasında Docker soketine erişmek için gerekli izinlere sahip olmamak, Docker'ın kurulumuyla ilgili sorunlar veya `docker.sock` dosyasının kendisiyle ilgili sorunlar yer almaktadır.

Olası nedenler hakkında artık bir fikriniz olduğuna göre, pratik çözümlere geçelim.

1. systemctl komutunu kullanarak Docker servisini başlatın.

Öncelikle Docker'ın çalışıp çalışmadığını kontrol etmelisiniz. `systemctl` aracı, sistem servislerini başlatmanıza ve yönetmenize olanak tanır. Docker aktif değilse, Docker istemcisi ana Docker işlemiyle iletişim kuramaz ve bu da hataya neden olur. `systemctl start docker` komutunu çalıştırmak, Docker servisini başlatacak ve eğer sadece aktif değilse sorunu çözecektir.

  1. Terminali açın Öncelikle aşağıdaki komutu çalıştırın. Gizlemeyi Kaldır Liman işçisi:
    sudo systemctl unmask docker

    Eğer Docker'ı maskelenmiş haldeyken başlatmaya çalışırsanız, "docker.service başlatılamadı: Birim maskelenmiş." hatasını görürsünüz. Maskeleme, bir hizmeti durdurmanın daha güçlü bir yoludur; hizmetin tamamen başlatılmasını engeller. Sisteminizdeki tüm birim dosyalarının durumunu görmek istiyorsanız, [yöntem/araç adı] kullanın. systemctl liste birim dosyaları.

  2. Docker bir kez Gizlenmemiş, Yapabilirsin Docker servisini başlat Bu komut kullanılarak, Docker arka plan servisi (daemon), imajları ve konteynerleri yönetir ve Docker API isteklerini işler.
    sudo systemctl liman işçisi başlat

    Docker servisini başlat

  3. için Docker'ın çalışıp çalışmadığını kontrol edin.Bu komutu girin. Bu komut, Docker servisinizin mevcut durumunu gösterecektir:
    sudo systemctl durum penceresi

    Docker servis durumu

  4. Yukarıdaki resimde de görebileceğiniz gibi, artık şunu görmelisiniz ki... Docker aktif ve çalışıyor..

2. "Docker pull failed" hatasını temizleyin ve Docker servisini başlatın.

Bazen, Docker pull işlemi başarısız olursa, Docker daemon'unun doğru şekilde başlamasını engelleyen eksik dosyalar bırakabilir. Bu kalan dosyaları kaldırmak, Docker'a yeni bir başlangıç ​​sağlar. Ardından Docker servisini yeniden başlatmak, takılı kalmış veya bozuk dosyalardan kaynaklanabilecek sorunların çözülmesine yardımcı olur.

  1. Çevresel Şu komutları girin:
    sudo systemctl unmask docker.service sudo systemctl unmask docker.socket sudo systemctl start docker.service

Docker servisini başlat

Bu komutları çalıştırdıktan sonra hata devam ederse, şunları yapmalısınız: Sil Dizindeki kalan dosyalar kaplanmışArdından Docker'ı tekrar başlatmayı deneyin. Docker'ın 1.11 sürümünde bir parçası haline gelen Containerd, Docker konteynerlerini doğrudan arka plandan yönetmenize yardımcı olur.

  • Terminalde kalın ve bu komutları çalıştırın; unutmayın ki şunlara ihtiyacınız olacak: Kök kullanıcı şifresi:
    sudo su service docker stop cd /var/run/docker/libcontainerd rm -rf containerd/* rm -f docker-containerd.pid service docker start

Docker hizmeti yeniden başlatılıyor.

3. Dockerd (Docker Daemon) servisini doğrudan başlatın.

Dockerd, arka planda çalışan ve tüm Docker görevlerini yöneten ana (gizli) programdır. Bazı durumlarda, özellikle `systemctl` komutu sisteminizde çalışmıyorsa, Dockerd'ı doğrudan başlatmak yardımcı olabilir.

  1. terminal Docker servisini doğrudan başlatmak için şu komutu kullanın:
    sudo dockerd

Dockerd'ı başlatın

4. Service komutunu kullanarak Docker'ı başlatın.

Docker'ı manuel olarak başlatmak, servisin çalıştığından emin olmanızı sağlar. Docker'ı başlatmak için `sudo service docker start` komutunu kullanabilirsiniz; bu, sistem yeniden başlatıldıktan sonra Docker otomatik olarak başlamazsa faydalı olur.

  1. Terminali açın ve şu komutu çalıştırın:
    sudo service --status-all sudo service docker start

Docker servisini başlat

5. Snap kullanarak bir Docker servisi başlatma

Eğer Docker'ı Snap kullanarak kurduysanız, Snap tarafından yönetilen Docker servisinin çalıştığından emin olmanız gerekir. Snap bazen servisleri kendiniz başlatmanızı veya bağlamanızı gerektirir. Docker servisinin beklendiği gibi çalıştığını doğrulamak için `sudo snap start docker` komutunu kullanın.

  1. Terminali açın ve şu komutu çalıştırın: Docker'ı başlatın:
    sudo snap start docker

    Docker'ı başlatın

  2. Snap kullanarak Docker'ın doğru şekilde başlatılıp başlatılmadığını kontrol etmek için şunu kullanın:
    sudo snap hizmetleri
  3. Bu yol açacaktır Şu anda faaliyette olan tüm Snap hizmetlerini listeleyin.:
    Snap hizmetleri
  4. Eğer Docker henüz başlamadıysa, şunu deneyin: docker:home eklentisini bağlamaBu her zaman otomatik olarak bağlanmaz. O zaman Docker'ı yeniden başlatın.
  5. Terminali açın ve aşağıdaki komutu çalıştırın:
    sudo snap connect docker:home :home sudo snap start docker

    Docker'ı başlatın

6. Kök ayrıcalıkları olmayan kullanıcılar için Docker'ı başlatın.

Bu hata, 'unix:///var/run/docker.sock' adresine erişim için yeterli izniniz yoksa da oluşabilir. Bunu geçici olarak aşmak için, Docker host değişkenini 2375 portu üzerinden yerel ağ arayüzünü kullanacak şekilde dışa aktarabilirsiniz.

  1. Terminali açın ve şunu çalıştırın:
    DOCKER_HOST'u dışa aktar=tcp://localhost:2375

    Docker ana bilgisayar dışa aktarımı

7. Docker'ı yeniden yükleyin.

Bazen, Docker'ın kurulumuyla ilgili sorunlar (örneğin bozuk dosyalar veya yanlış ayarlar) Docker servisinin doğru şekilde çalışmasını engelleyebilir. Docker'ı yeniden yüklemek her şeyi varsayılan durumuna geri döndürür ve hatalı veya çakışan ayarlardan kaynaklanan sorunları düzeltebilir.

  1. Docker'ı yeniden yükledikten sonra, aşağıdaki komutu kullanarak servisin çalıştığını doğrulayın:
    sudo service docker start

    Bu işlem Docker'ı başlatacak ve özellikle bilgisayar yeniden başlatıldıktan sonra veya Docker otomatik olarak başlatılamadığında, program etkin olmadığında ortaya çıkan sorunları genellikle çözecektir.

  2. Docker arka plan servisi tüm konteynerleri ve imajları kontrol ettiğinden, çalışır durumda olduğundan emin olmak, Docker istemcisi ile arka plan servisi arasındaki bağlantıyı yeniden kurar ve bu da hizmet kesintileri veya hareketsizlikten kaynaklanan hataları düzeltebilir.