Düzeltme: Docker Daemon'a Bağlanamıyor



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Bir Linux terminali size “Docker daemon'a bağlanılamıyor” hatası veriyorsa kafanız çok karışabilir, çünkü büyük olasılıkla Docker daemon bunu gördüğünüzde zaten çalışıyor. Bunun olduğundan emin olmak isteseniz de, bu hatanın başlatılmayan hizmetle bile ilgisi olmadığını öğrendiğinizde muhtemelen kafanız karışacaktır. Çoğunlukla kendilerini Docker grubuna eklemeyen kullanıcılara atılır.



Docker, Linux sistemlerinde ayrı bir kullanıcı grubu yayınlar ve ona eklenmemiş kullanıcı hesaplarına sahip olanlar bu gruba bağlanamaz. Docker grubuna bir kullanıcı hesabı eklemenin işlevsel olarak kök eşdeğeri olduğunu unutmayın, çünkü daemon her zaman kök kullanıcı olarak çalışır. Bu, tek kullanıcılı bir Ubuntu Sunucu sisteminde beklenebilir, ancak Docker'ı Arch, Fedora veya Debian'da çalıştıranlar için kesinlikle akılda tutulması gereken bir şey olacaktır.



Yöntem 1: Docker Hizmet Durumunu Kontrol Etme

Neredeyse kesinlikle öyle olsa da, Docker hizmetinin şu anda çalışıp çalışmadığını kontrol etmeniz gerekecek. Bir terminal penceresinde çalıştırın systemctl durumu docker.service normal bir kullanıcı olarak. Docker’ın arka plan programının hangi PID numarasına atandığı hakkında bilgi almalısınız. Bunu yapmazsanız, hizmeti yeniden başlatmanız gerekir.



Yeniden başlattıysanız, 'Docker daemon'a bağlanılamıyor' hatası veren her şeyi yapmayı deneyin. Şimdi çalışıyorsa, o zaman hizmetin çalışmadığı anlamına gelir ve gerçekten çalışmama nedeni dışında başka bir şey için endişelenmenize gerek kalmaz. Maalesef bu çoğu durumda işe yaramaz, bu nedenle bu durumlarda devam etmeniz gerekir.

Yöntem 2: Docker Grubuna Kullanıcı Ekleme

Çalıştırmak docker bilgisi komut satırından, normalde size 'Docker daemon'a bağlanılamıyor' hatasını bir kez daha verir.

Bu durumda, koşmanız gerekecek sudo groupadd docker; sudo usermod -aG docker $ USER kendinizi uygun gruba eklemek için. Kullanıcı modunuz olmadığı için bu bir hata verirse, şu şekilde çalıştırmak için komutu değiştirebilirsiniz: sudo groupadd docker; sudo gpasswd -a $ KULLANICI penceresi , ancak bu genellikle bir sorun olmamalıdır çünkü ticari düzeydeki Linux dağıtımlarının çoğu aynı araç setiyle çalışmaktadır. Her durumda koş newgrp liman işçisi böylece henüz yapmadıysanız yeni docker grubuna giriş yapabilirsiniz.



Bunun, şu anda oturum açmış olduğunuz kullanıcıyı her zaman ekleyeceğini unutmayın; bu, tek bir kullanıcı ve kök hesap dışında birden fazla hesabı olmayan çoğu kişinin sisteminde çok fazla sorun teşkil etmemelidir. Şimdilik yönetici erişiminiz olduğundan, sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock docker soketi ve komutundaki izinleri düzeltmek için. Genellikle soket dosyası sadece kök kullanıcıya aittir, bu yüzden bu onu düzeltir.

Çalıştırdıktan sonra herhangi bir sorun yaşamazsınız çünkü artık önceki komutta oluşturduğunuz gruba ait. Docker'ın sudo olmadan çalıştığından emin olmak için test etmek isteyeceksiniz, bu yüzden şunu yazın: docker run merhaba dünya düzenli bir kullanıcı olarak başka herhangi bir hata almadığınızdan emin olun.

Bu noktada, çok az kullanıcı hala herhangi bir tür hata mesajı alıyor olacaktır. Bu noktada çoğu şeyin düzeltilmesi gerekir, ancak hala sorun yaşıyorsanız, oturumu tamamen kapatmak isteyebilirsiniz. Başka bir terminal öykünücüsü penceresi açmayı deneyin, ancak bu işe yaramazsa, bu mümkünse bazen sistemin tamamen yeniden başlatılması için sistemin kapatılmasına yardımcı olur

Yöntem 3: Docker Meta Verilerini Değiştirmek için ACL'leri Kullanma

Sizi kök kullanıcı gibi yapan bir gruba dahil olmak istemiyorsanız, soket dosyasını yalnızca belirli izinlerle çalışacak şekilde ayarlayabilirsiniz. Bu şekilde yapmayı tercih ederseniz, gpasswd işlemini göz ardı edebilirsiniz. Güvenlik denetimi yapanlar için bir yük olarak dosya sistemini farklı ACL girişleri için taramak zorunda kalmanız, ancak docker grubunu tamamen kullanmak zorunda kalmanızı engeller.

Bu şekilde yapmak istersen, koşabilirsin sudo setfacl -m kullanıcı: ad: rw /var/run/docker.sock kullanıcı ve adı uygun etiketlerle değiştirirken. Bu, Debian ve Ubuntu Sunucusu ile çalışması gereken /var/run/docker.sock adresindeki Docker soketine erişim izni verir.

3 dakika okundu