liman işçisi ile sorun


32

15.04 tarihinde ubuntu'da "Docker" hakkında bilgi edinmeye çalışıyorum.

"Docker run image" gibi bir docker kullanarak herhangi bir komut verdiğimde, aşağıdaki hatayı alıyor:

FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

Ne anlama geldiğini anlamıyorum.


5
Bu hata mesajını alıyordum ve ardından daemon ile başladım sudo service docker start. Sonra kaçabildim sudo docker run hello-world. İyi şanslar.
shellter

Yanıtlar:


31

Bu hatayı almanızın iki olası nedeni vardır:

  1. Docker arka plan programı çalışmıyor. Bunu kontrol edebilirsiniz sudo /etc/init.d/docker status.

  2. Docker arka plan programı çalışıyor, ancak dinlenmeyecek şekilde yapılandırıldı /var/run/docker.sock. /etc/default/dockerHerhangi bir -Hseçeneğin belirtilmiş olup olmadığını kontrol edebilirsiniz DOCKER_OPTS.


3
+1. $ sudo service docker status$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
Aldığımdan

sudo /etc/init.d/docker statusÇalıştırdıktan sonra liman işçisi hizmetinin başarısız olduğunu kabul ettim. Koştum sudo /etc/init.d/docker start, sonra liman işçisi imgesini çalıştırabilirdim.
Halil,

Systemd'de / etc / default / docker artık kullanışlı değil gibi görünüyor (Ubuntu 16.04+). BTW sistemde daemon durumunu kontrol etmenin kurallı yolu olacaktır sudo systemctl status docker.
Pablo,

38

Docker'ı yükledikten sonra, kullanıcıyı docker grubuna eklemeniz istenir. Sadece gösterilen komutu çalıştırın:

sudo usermod -aG docker $USER

Değişikliğin etkili olması için oturumunuzu kapatmanız ve tekrar oturum açmanız gerekir.


Muhtemelen en basit olanı. İşe yarayıp yaramadığını bilmiyorum, ama (decebal'ın kullandığı) cevap.
Yair Daon

Bu istemi alamadım. Ahududu Pi'leyim.
IgorGanapolsky

Kendinizi daha sonra liman işçisi grubuna eklemek için, çalıştırın sudo usermod -a -G docker <user>. Daha fazla bilgi için buraya bakınız .
Hugh W

3
"Oturumu kapat" a vurgu - teşekkürler!
Dolan Antenucci

Gnome ile 18.04 tarihinde Ubuntu'da bunun çalışması için sistemi yeniden başlatmam gerekiyordu. Sadece oturumu
Zoltán

15

Kullanıcınız liman grubuna katıldıysa, grup izinlerini uygulamak için liman kurulumundan sonra işletim sisteminizi yeniden başlatmayı deneyin.

Güncelleştirme:

Docker, ubuntu 14.04’e yükleme yaparken, yükleyici, Docker Hizmetine erişmek için kullanıcılarınızın Docker grubuna ne eklediğini önerir.

Bakmak

Liman işçisi, bir TCP portu yerine bir Unix soketine bağlanır. Varsayılan olarak bu Unix soketi kullanıcı köküne aittir ve diğer kullanıcılar sudo ile erişebilirler. Bu nedenle, liman işçisi arka plan her zaman kök kullanıcı olarak çalışır. Docker komutunu kullanırken sudo kullanmak zorunda kalmamak için, docker adında bir Unix grubu oluşturun ve buna kullanıcılar ekleyin. Liman işçisi arka plan başladığında, Unix soket sahipliğini liman işçisi grubu tarafından okunabilir / yazılabilir kılar.

kaynak: https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group


2
Bunun neden yardımcı olacağını açıklamalısınız.
guntbert

1
@guntbert Cevabımı güncelledim ..
MURATSPLAT

@MURATSPLAT, qbi, gunbert Çözümü bulduğum için teşekkürler
rishi kant

Grup izin değişikliğini etkilemek için. Yeniden başlatmanıza gerek yok. çıkış yeterli.
Tim Wu

@TimWu Gnome ile Ubuntu 18.04 tarihinde , sistemi yeniden başlatmak zorunda kaldım - sadece oturumu kapatıp tekrar çalışmadım: /
Zoltán

10

sunucunuzda sudo docker imagesbir kapsayıcı olup olmadığını kontrol etmek için kullanmayı deneyin <image>.

çalışan docker run <image>, <image>ana bilgisayarınızda bu kapsayıcıya sahip değilse, ana bilgisayarınızda adlandırılan bir kapsayıcıyı başlatırsanız , docker, '' adında bir kapsayıcıyı, tıpkı çalışma biçiminizdeki depo merkezinden otomatik olarak çeker docker pull <image>. Sonra hala '' adlı bir resim bulamazsa, bu hata mesajını gösterecektir.

hello-worldDocker'ın bilgisayarınızda çalışıp çalışmadığını görmek için değiştirmeyi deneyebilirsiniz .

sudo docker run hello-world

Ayrıca kullanmanız gerekip gerekmediğini de kontrol etmelisiniz sudo.


2
Sorun OP'nin sudo kullanmaması durumunda, hata mesajı "böyle bir dosya ya da dizin yok" yerine "izin verilmedi" olurdu.
Andreas Veithen

1
Evet haklısın. Kullanıcı izniniz yoksa hata mesajının şöyle olacağını FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
denedim

2
izinleri vermeye çalışınsudo usermod -a -G docker ec2-user
AB

4

Bu makaleyi faydalı buldum: https://docs.docker.com/articles/systemd/ ; Birden çok ortamda çalıştırdım ve çalıştım, umarım sizlere de yardımcı olur


Sadece link cevapları kabul edilebilir sayılmaz. Lütfen tamamlanabilmek için cevabınızı çıkarın.
Fyozy

2
Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantıyı sağlamak tercih edilir.
Mitch

1
Bu sistem bağlantısı ölü gibi görünüyor. İşte başka bir bağlantı docs.docker.com/engine/admin/systemd
wsams

2

Bir görüntü çekmeye çalışırken benzer bir mesajım var. Ben sadece yaptım sudo suve sonra görüntüyü başarıyla çekebildim.


2
Ubuntu'ya Sormaya Hoş Geldiniz! Bunun nasıl yapılacağı hakkında ayrıntılı bilgi vermek için bu cevabı düzenlemenizi öneririm . (Ayrıca bkz. İyi bir cevap nasıl yazırım? Ask Ubuntu'da hangi tür yanıtların en değerli olduğu konusunda genel tavsiyeler için.) Docker'ı süper kullanıcı olarak çalıştırmanın birkaç kez önerildiğini unutmayın.
David Foerster

sorunumun çözümünü aldım.
rishi,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.