docker hatası: /var/run/docker.sock: böyle bir dosya veya dizin yok


86

Docker'da yeniyim. Verileri impala'ya yükleyen bir kabuk betiğim var ve bir görüntü oluşturup kabı çalıştıran bir docker dosyası istiyorum. Mac kullanıyorum, boot2docker'ı yükledim ve DOCKER_HOSTenv ayarım var .

bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]

Şunu kullanarak önceden oluşturulmuş bir görüntü yüklemeye çalışıyorum:

sudo docker pull busybox

Bu hatayı alıyorum:

sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory

Docker kurulumumda bir sorun mu var?

Bir yaptığımda docker pull busybox, görüntüyü çeker ve indirme işlemi tamamlanır.

bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete 
fd5373b3d938: Download complete 
d200959a3e91: Download complete 
37fca75d01ff: Download complete 
511136ea3c5a: Download complete 
42eed7f1bf2a: Download complete 
c120b7cab0b0: Download complete 
f06b02872d52: Download complete 
120e218dd395: Download complete 
1f5049b3536e: Download complete 
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor

Bir şey mi kaçırıyorum?


Ben de aynı sorunu yaşıyordum. Dizüstü bilgisayarımı yeniden başlattım. bu yüzden benim için çalışmaya başladı. (bkz. docs.docker.com/installation/ubuntulinux ) Bilgisayarı yeniden başlatmaktan da söz ettiler.
NehaG

İnternete bağlı olduğunda benim için çalıştı, ben :( gerçi neden oldu hiçbir fikrim yok
Sai Ram

Yanıtlar:


87

Sen gibi herhangi liman işçisi komutları çalıştırmak gerekmez sudokullandığınız zaman boot2dockergeçti her komutu olarakboot2dockerSanal makineye varsayılan olarak kök olarak çalıştığından, .

Çalıştırırken hata görüyorsunuz sudoçünkü env ayarına sudosahip değilsiniz DOCKER_HOST, yalnızca kullanıcınız var.

Bunu şu şekilde onaylayabilirsiniz:

$ env

Sonra bir

$ sudo env

Ve arıyorum DOCKER_HOST her çıktıda aranıyor.

Komut dosyanızı çalıştıran bir docker dosyasına gelince, bunun gibi bir şey sizin için işe yarayabilir:

Dockerfile

FROM busybox

# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh

# Run your script
CMD /usr/local/bin/script.sh

O zaman çalıştırabilirsiniz:

docker build -t your-image-name:your-tag .

Bu, aşağıdakileri yaparak görebileceğiniz docker imajınızı oluşturacaktır:

docker images

Ardından, kapsayıcınızı çalıştırmak için şunları yapabilirsiniz:

docker run your-image-name:your-tag

Bu çalıştırma komutu, kendinizle Dockerfileve inşa komutunuzla oluşturduğunuz görüntüden bir kapsayıcı başlatacak ve ardından script.shyürütmeyi bitirdiğinizde bitecektir.


1
Cehaletim için üzgünüm ama inşa etmeyi başardığımı sanmıyorum. "docker images": 2014/08/19 11:11:45 Get http: ///var/run/docker.sock/v1.13/images/json: unix /var/run/docker.sock'u çevirin: hayır böyle bir dosya veya dizin. Docker, ana dizine yerleştirilmeli mi ve herhangi bir isimle adlandırılabilir mi? "İmage-name" ile aynı mı?
user1189851

Docker görüntüsünü oluşturmak için kullandığınız komutu yapıştırabilir misiniz? Yapmamanız gerektiğinde OSX makinenizde hala sudo kullanıyormuşsunuz gibi geliyor.
Chris McKinnel

$ docker build -t / Kullanıcılar / ig / Documents / testler / hellodocker. 2014/08/19 11:18:09 Geçersiz ad alanı adı (), yalnızca [a-z0-9_] kullanılabilir, boyut 4 ile 30 arasında; ve Hellodocker'da sadece verdiğiniz dockerfile'ın içeriği var. çok teşekkürler.
user1189851

Evet, docker görüntünüzü bir dosya yolu ile etiketlemeye çalışıyorsunuz - -tbeğendikten sonra başka bir şey deneyin your-image-name:a-tag.
Chris McKinnel

Bana komut satırını verebilir misiniz, lütfen. Bir şeyi mahvediyorum. docker dosyam hellodocker ve yol yukarıda verilmiştir.
user1189851

45

Kullanarak ortamınızı hızlı bir şekilde kurabilirsiniz shellinit

Komut isteminizde yürütün:

$(boot2docker shellinit)  

Bu, ortam değişkenlerini dolduracak ve dışa aktaracak ve diğer özellikleri başlatacaktır.


26

MAC'imde, kullanarak terminalde boot2docker-vm'yi başlattığımda


boot2docker start

Şunu görüyorum


To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://:2376

Bu ortam değişkenlerini ayarladıktan sonra derlemeyi sorunsuz bir şekilde çalıştırabildim.

Güncelleme [2016-04-28] Docker'ın son sürümlerinden birini kullanıyorsanız şunları yapabilirsiniz:

eval $(docker-machine env) çevreyi ayarlayacak

( docker-machine envihracat bildirimlerini yazdıracak)


2
Zamandan kazanmak için bunları terminal profilinize de ekleyebilirsiniz. VM size önceden ayarlanmış olduklarını bildirecektir.
Joe Susnick

25

docker pulldocker serviceçalışmıyorsa başarısız olur . Tarafından çalıştığından emin olun

:~$ ps aux | grep docker
root     18745  1.7  0.9 284104 13976 ?   Ssl  21:19   0:01 /usr/bin/docker -d

Çalışmıyorsa, şu şekilde başlayabilirsiniz:

sudo service docker start

Ubuntu 15 ve üzeri kullanım için

sudo systemctl start docker


16

Ben de bu hatayı aldım. Yine de, boot2docker kullanmadım, ancak Ubuntu'ya "düz" docker kurdum (bkz. Https://docs.docker.com/installation/ubuntulinux/ ).

Docker daemon henüz çalışmadığı için ("unix /var/run/docker.sock çevirin: böyle bir dosya veya dizin yok. TLS'siz TLS etkin bir arka plan programına bağlanmaya mı çalışıyorsunuz?") Hatasını aldım .

Ubuntu'da hizmeti başlatmanız gerekir :

sudo service docker start

Ayrıca bkz. Http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64


9

Windows'ta boot2docker için, şunu gördükten sonra:

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

Tek yaptığım şuydu:

boot2docker start
boot2docker shellinit

Bu yarattı:

export DOCKER_CERT_PATH=C:\Users\vonc\.boot2docker\certs\boot2docker-vm
export DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://192.168.59.103:2376

En sonunda:

boot2docker ssh

Ve docker tekrar çalışıyor


6

Linux'ta, her şeyden önce sudo service docker startterminalde çalıştırın .


5

CentOS 7 kullanıyorsanız ve Docker'ı yum aracılığıyla kurduysanız, çalıştırmayı unutmayın:

$ sudo systemctl start docker
$ sudo systemctl enable docker

Bu, sunucuyu başlatacak ve önyükleme sırasında otomatik olarak yeniden başlatacaktır.


4

Ortamınızı kurmak ve gelecekteki oturumlarda saklamak için şunları yapabilirsiniz:

echo 'export DOCKER_HOST="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrc

Sonra: source ~/.bashrc

Ve ortamınız her oturumda kurulacak


0

İlk /var/run/docker.sock, boot2docker sanal makinenizdeki aynı yolu ifade eder. Windows /var/run/docker.sock için doğru şekilde yazın


Buraya biraz daha açıklama ekleyebilir misiniz? Ayrıca, kullanıcının bir Mac'te olduğunu düşünüyorum.
2ps

0

Sen, belki OP değil, ama birinin adında bir dizini olabilir /var/run/docker.sock/ docker ile işleri doğru yapmak için kaç kez hacklediğiniz ve böldüğünüzden dolayı (özellikle noobs) zaten . Bu dizini silin ve tekrar deneyin.

Bu, onu Centos 7'de çalıştırma yolunda bana yardımcı oldu.

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.