galat buruh pelabuhan: /var/run/docker.sock: tidak ada berkas atau direktori seperti itu

86

Saya baru mengenal buruh pelabuhan. Saya memiliki skrip shell yang memuat data ke impala dan saya ingin file buruh pelabuhan yang menjalankan membangun gambar dan menjalankan wadah. Saya menggunakan mac, menginstal boot2docker dan menginstal DOCKER_HOSTenv.

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]

Saya mencoba memasang gambar yang sudah dibuat sebelumnya menggunakan:

sudo docker pull busybox

Saya mendapatkan kesalahan ini:

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

Apakah ada yang salah dengan pengaturan buruh pelabuhan saya?

Ketika saya melakukan docker pull busybox, Ini menarik gambar dan unduhan selesai.

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

Apakah saya melewatkan sesuatu?

pengguna1189851
sumber
Saya mengalami masalah yang sama. Saya me-reboot laptop saya. jadi itu mulai bekerja untuk saya. (lihat docs.docker.com/installation/ubuntulinux ) Mereka juga disebutkan untuk memulai ulang komputer.
NehaG
bekerja untuk saya ketika saya terhubung ke internet, saya tidak tahu mengapa itu terjadi :(
Sai Ram

Jawaban:

87

Anda tidak perlu menjalankan perintah buruh pelabuhan apa pun seperti sudosaat Anda menggunakan boot2dockerkarena setiap perintah yang diteruskan ke boot2dockerVM dijalankan sebagai root secara default.

Anda melihat kesalahan saat menjalankan sudokarena sudotidak memiliki DOCKER_HOSTset env, hanya pengguna Anda yang memilikinya.

Anda dapat mengonfirmasi ini dengan melakukan:

$ env

Kemudian a

$ sudo env

Dan mencari DOCKER_HOSTdi setiap keluaran.

Adapun memiliki file buruh pelabuhan yang menjalankan skrip Anda, sesuatu seperti ini mungkin berhasil untuk Anda:

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

Kemudian Anda dapat menjalankan:

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

Ini akan membangun citra buruh pelabuhan Anda, yang dapat Anda lihat dengan melakukan:

docker images

Kemudian, untuk menjalankan penampung Anda, Anda dapat melakukan:

docker run your-image-name:your-tag

Perintah run ini akan memulai penampung dari gambar yang Anda buat dengan Anda Dockerfiledan perintah build Anda dan kemudian akan selesai setelah Anda script.shselesai mengeksekusi.

Chris McKinnel
sumber
1
Maaf tentang ketidaktahuan saya tetapi saya tidak berpikir saya telah berhasil membangun. "docker images": memberikan 2014/08/19 11:11:45 Dapatkan http: ///var/run/docker.sock/v1.13/images/json: dial unix /var/run/docker.sock: no file atau direktori tersebut. Haruskah buruh pelabuhan ditempatkan di direktori home dan dapatkah ia dinamai dengan nama apapun? Apakah sama dengan "nama-gambar"?
pengguna1189851
Bisakah Anda menempelkan perintah yang Anda gunakan untuk membangun image buruh pelabuhan? Sepertinya Anda masih menggunakan sudo di mesin OSX Anda padahal seharusnya tidak.
Chris McKinnel
$ docker build -t / Users / ig / Documents / tests / hellodocker. 2014/08/19 11:18:09 Nama namespace tidak valid (), hanya [a-z0-9_] yang diperbolehkan, ukuran antara 4 dan 30; dan hellodocker hanya memiliki isi dari file galangan yang Anda berikan. Terima kasih banyak.
pengguna1189851
Ya Anda mencoba untuk menandai gambar buruh pelabuhan Anda dengan jalur file - coba sesuatu yang lain setelah -tseperti your-image-name:a-tag.
Chris McKinnel
Bisakah Anda memberi saya baris perintah, tolong. Saya mengacaukan sesuatu. file buruh pelabuhan saya adalah hellodocker dan jalurnya diberikan di atas.
pengguna1189851
45

Anda dapat dengan cepat mengatur lingkungan Anda menggunakan shellinit

Pada prompt perintah Anda, jalankan:

$(boot2docker shellinit)  

Itu akan mengisi dan mengekspor variabel lingkungan dan menginisialisasi fitur lainnya.

pengguna848337
sumber
26

Di MAC saya ketika saya memulai boot2docker-vm di terminal menggunakan


boot2docker start

Saya melihat yang berikut ini


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

Setelah mengatur variabel lingkungan ini, saya dapat menjalankan build tanpa masalah.

Perbarui [2016-04-28] Jika Anda menggunakan versi terbaru buruh pelabuhan yang dapat Anda lakukan

eval $(docker-machine env) akan mengatur lingkungan

( docker-machine envakan mencetak pernyataan ekspor)

Jerome Anthony
sumber
2
Anda juga dapat menambahkan ini ke profil terminal Anda untuk menghemat waktu. Vm akan memberi tahu Anda bahwa mereka sudah disetel.
Joe Susnick
25

docker pullakan gagal jika docker servicetidak berjalan. Pastikan itu berjalan dengan

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

Jika tidak berjalan, Anda dapat memulainya dengan

sudo service docker start

Untuk penggunaan Ubuntu 15 dan yang lebih baru

sudo systemctl start docker

Harikrishnan
sumber
16

Saya juga mendapat kesalahan ini. Padahal, saya tidak menggunakan boot2docker tetapi hanya menginstal buruh pelabuhan "biasa" di Ubuntu (lihat https://docs.docker.com/installation/ubuntulinux/ ).

Saya mendapat kesalahan ("panggil unix /var/run/docker.sock: tidak ada file atau direktori seperti itu. Apakah Anda mencoba menyambung ke daemon berkemampuan TLS tanpa TLS?") Karena daemon buruh pelabuhan belum berjalan .

Di Ubuntu, Anda perlu memulai layanan :

sudo service docker start

Lihat juga http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64

Jörg
sumber
9

Untuk boot2docker di Windows, setelah melihat:

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?

Yang saya lakukan hanyalah:

boot2docker start
boot2docker shellinit

Itu menghasilkan:

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

Akhirnya:

boot2docker ssh

Dan buruh pelabuhan bekerja kembali

VonC
sumber
6

Di Linux, pertama-tama jalankan sudo service docker startdi terminal.

Mohsen Kashi
sumber
5

Jika Anda menggunakan CentOS 7, dan Anda telah menginstal Docker melalui yum, jangan lupa untuk menjalankan:

$ sudo systemctl start docker
$ sudo systemctl enable docker

Ini akan memulai server, serta memulai ulang secara otomatis saat boot.

Lee Benson
sumber
4

Untuk menyiapkan lingkungan Anda dan menyimpannya untuk sesi mendatang, Anda dapat melakukan:

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

Kemudian: source ~/.bashrc

Dan lingkungan Anda akan disiapkan di setiap sesi

Lt.
sumber
0

/ Var/run/docker.sock pertama mengacu pada jalur yang sama di mesin virtual boot2docker Anda. Tulis dengan benar untuk windows /var/run/docker.sock

M. Dicon
sumber
Bisakah Anda menambahkan penjelasan lagi di sini? Selain itu, saya pikir pengguna menggunakan mac.
2ps
0

Anda, mungkin bukan OP, tetapi seseorang mungkin memiliki direktori bernama /var/run/docker.sock/ karena berapa kali Anda meretas dan menebas untuk memperbaiki keadaan dengan buruh pelabuhan (terutama pemula). Hapus direktori itu dan coba lagi.

Ini membantu saya untuk membuatnya berfungsi di Centos 7.

pjammer.dll
sumber