medyauzmani.com

“Docker Daemon’a bağlanılamadı” sorununu giderme

Docker logo resmi

Docker, yazılım konteynerleri oluşturmak ve çalıştırmak için önde gelen platformlardan biridir. Sürü modunda kapsayıcıları tek bir ana bilgisayarda veya birden çok dağıtılmış düğümde çalıştırmak için ihtiyacınız olan her şeyle birlikte gelir.

Docker, arka plan programı tabanlı bir mimariye sahiptir. Kapsayıcıları oluşturmaktan ve çalıştırmaktan sorumlu olan yazılım, komutlarınızı kabul eden CLI işleminden bağımsızdır. Bu, etkin bir arka plan programı bağlantısı olmadan komutları çalıştırmayı denerseniz, CLI’de hatalar göreceğiniz anlamına gelir. Bu yazıda, bu can sıkıcı mesajları çözmenin bazı yollarını paylaşacağız.

Sorunun belirtileri

Docker CLI, kullanılabilir bir arka plan programı bağlantısını temel alır. API çağrılarını kullanarak daemon ile iletişim kurar. Yapılandırılan arka plan programına erişilemediğinde, docker gibi komutlar docker psVe docker runE docker build Aşağıdakine benzer bir hata mesajı görünecektir:

$ docker run hello-world:latest
Cannot connect to the Docker daemon at unix:///var/run/docker.sock
Is the docker daemon running?

Bu, CLI’nin aşağıdakileri kullanarak Docker cini ile iletişim kurmaya çalıştığını gösterir. /var/run/docker.sock Unix bağlantısı. Soket açık değil, bu nedenle bağlantı başarısız oluyor.


1. Docker Daemon hizmetinin çalıştığını doğrulayın

Docker arka plan programı genellikle, sunucunuz yeniden başlatıldıktan sonra Docker’ı otomatik olarak başlatan bir sistemd hizmeti tarafından yönetilir. Bu hizmetin çalışıp çalışmadığını kontrol ederek sorun gidermeye başlayabilirsiniz:

$ sudo systemctl status docker
docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: inactive (dead)

servis rapor vermeli Active: active (running) arka plan programı çalışırken. Yukarıdaki örnek şunu gösterir: inactive (dead) Böylece daemon durdu.

Docker’ı aşağıdaki komutla başlatın:

$ sudo systemctl start docker

Şimdi koşabilmelisin docker CLI komutları başarıyla tamamlandı.


Makinenizi yeniden başlattıktan sonra, Docker’ın hala takılı kaldığını fark edebilirsiniz. Bunu, systemd’nin otomatik olarak başlatabilmesi için hizmeti etkinleştirerek düzeltebilirsiniz:

$ sudo systemctl enable docker
$ sudo systemctl daemon-reload

Bu harika daemon-reload Komut, systemd’ye değişikliği uygulamak için yapılandırmayı yeniden yüklemesini söyler.

2. Daemon’u manuel olarak başlatın

Bazen Docker hizmetinin yüklü olmadığı bir sistemi kullanabilirsiniz. Docker arka plan programını şu komutla manuel olarak başlatabilirsiniz: dockerd sıralama. Bu normalde şu şekilde yapılmalıdır: root.

$ sudo dockerd
INFO[2022-06-29T15:12:49.303428726+01:00] Starting up

Docker, komut yürütüldüğü sürece kullanılabilir durumda kalacaktır. Arka plan programını durdurmak için Ctrl + C tuşlarını kullanın.

3. CLI’nin doğru arka plan programını hedeflediğini doğrulayın

CLI uzak bir Docker örneğine bağlanmaya çalıştığında sorunlar oluşabilir. Bu genellikle TCP adresi için hata mesajının nedenidir:

$ docker run hello-world:latest
Cannot connect to the Docker daemon at tcp:///0.0.0.0:2375

Bu örnekte, docker CLI şu adreste Docker arka plan programıyla iletişim kurmaya çalışıyor: 0.0.0.0:2375 Orijinal Unix Docker soketi yerine TCP kullanma. Docker arka plan programı için TCP desteği devre dışı bırakılırsa veya belirtilen ana bilgisayara ağ üzerinden erişilemiyorsa bu başarısız olur.

Bunu genellikle kullanmak istediğiniz arka plan programı bağlantısı için doğru Docker CLI bağlamına geçerek düzeltebilirsiniz:

$ docker context use default

Mevcut tüm bağlamları ve bağlandıkları arka plan programı bitiş noktalarını listeleyebilirsiniz. context ls Prens:

$ docker context ls
NAME        DESCRIPTION                               DOCKER ENDPOINT             
default *   Current DOCKER_HOST based configuration   unix:///var/run/docker.sock

Halihazırda seçili olan bağlam bir yıldız işaretiyle işaretlenmiştir.

beklenmeyen değerler DOCKER ENDPOINT Genellikle sütuna neden olur DOCKER_HOST Ortam değişkeni ayarlanır. Bu durumda bir uyarı göreceksiniz:


$ export DOCKER_HOST=1.2.3.4
$ docker context ls
NAME        DESCRIPTION                               DOCKER ENDPOINT
default *   Current DOCKER_HOST based configuration   tcp://1.2.3.4:2375
Warning: DOCKER_HOST environment variable overrides the active context. To use a context, either set the global --context flag, or unset DOCKER_HOST environment variable.

Mevcudiyet DOCKER_HOST Kabuğunuzdaki ortam değişkeni, seçtiğiniz bağlam tarafından tanımlanan uç noktayı geçersiz kılar. Bu örnekte, docker Komutlar her zaman arka plan programı örneğini hedefler tcp://1.2.3.4:2375.

Bu sorun temizlenerek çözülebilir. DOCKER_HOST Çalışan:

$ export DOCKER_HOST=

Docker artık etkin bağlamınız tarafından yapılandırılan uç noktayı kullanır. Bu, varsayılan yerel Unix soketidir. /var/run/docker.sock Özel bağlamı manuel olarak ayarlamadığınız sürece.

$ docker context ls
NAME        DESCRIPTION                               DOCKER ENDPOINT             
default *   Current DOCKER_HOST based configuration   unix:///var/run/docker.sock

4. İzin sorunları

Bir Docker soketindeki hatalı kullanıcı izinleri, arka plan programı bağlantı sorunlarının başka bir yaygın nedenidir. Bu tür bir sorun genellikle biraz farklı bir hata mesajı görüntüler:

$ docker run hello-world:latest
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

Bu, Unix kullanıcı hesabınızın Docker API’sini açığa çıkaran sokete bağlanmasına izin verilmediğinde oluşur. kendini ekle docker Grup, bu sorunu çözmenin en iyi yoludur:

$ sudo usermod -aG docker $USER

Bu değişikliğin geçerli olması için yeni bir kabuk penceresi açmanız veya oturumu kapatıp tekrar oturum açmanız gerekir. Şimdi koşabilmelisin docker izin sorunları ile karşılaşmadan siparişler.


genel bakış

Docker CLI, geçerli yapılandırmayı kullanarak Docker arka plan programı örneğine bağlanamadığında “Docker arka plan programına bağlanılamıyor” mesajı görüntülenir. Buna genellikle Docker arka plan programı hizmetinin durdurulması veya devre dışı bırakılması neden olur. İnternete bağlı olmayan üçüncü taraf bir Docker ana bilgisayarına bağlanmayı da deneyebilirsiniz.

Artık bu sorunun olası nedenlerinin ve sorunu çözmenin yaygın yollarının farkında olmalısınız. Docker arka plan programı ayarlarını kontrol ederek, Docker hizmetini yeniden başlatarak ve kullanıcı hesabınızın Docker soketi ile iletişim izni olduğundan emin olarak hatayı düzeltin.

kaynak bağlantı

Diğer gönderilerimize göz at

[wpcin-random-posts]

Yorum yapın