Saya mencoba mempelajari tentang Docker , tetapi saya terus menerima pesan kesalahan samar (untuk saya).
Mungkin contoh paling sederhana dari ini adalah mencoba mencetak versi Docker yang saya instal:
$ sudo docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.16/version:
dial unix /var/run/docker.sock: no such file or directory.
Are you trying to connect to a TLS-enabled daemon without TLS?
Saya baru saja membaca panduan pengguna dan mengikuti setiap langkah dengan tepat, jadi saya terkejut bahwa saya mendapatkan pesan ini ... Apa yang harus saya lakukan sekarang?
Saya hanya memperhatikan bahwa jika saya tidak menggunakan, sudo
saya tidak mendapatkan kesalahan:
$ docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8
Tentu saja, ini bukan solusi karena saya mungkin perlu menggunakan sudo
suatu tempat di jalan ...
Saya baru saja menemukan halaman lain yang mengatakan " Jika Anda menggunakan OS X maka Anda tidak boleh menggunakan sudo
." Saya tidak tahu apakah maksudnya hanya untuk contoh itu, atau secara umum.
boot2docker
) meskipun OS X tidak secara eksplisit disebutkan dalam pertanyaan atau tag. Jika ada yang tertarik dengan jawaban umum, silakan lihat jawaban saya.Jawaban:
Bagi saya, menjalankan
$(boot2docker shellinit 2> /dev/null)
memperbaiki masalah.Ini menjalankan output dari
boot2docker shellinit
perintah (tigaset -x ...
baris) di sesi terminal Anda saat ini, yang memungkinkandocker
perintah tahu di mana menemukan mesin virtual boot2docker.Menambahkan
$(boot2docker shellinit 2> /dev/null)
ke bagian bawah~/.bash_profile
file Anda akan memastikandocker
perintah telah dikonfigurasi, setiap kali Anda membuka terminal Anda.Untuk orang yang menggunakan ikan shell:
boot2docker shellinit ^ /dev/null | source
.Perhatikan bahwa
2> /dev/null
(dan yang setara dengan Ikan^ /dev/null
) adalah opsional. Seperti yang disarankan @ pablo-fernandez, ini menyembunyikanWriting ..
garis.sumber
boot2docker start
sebelum menjalankan init shell.Saya mendapatkan kesalahan yang sama pada MacOS dengan sudo dan tanpa itu.
Saya telah menyelesaikannya dengan:
PS: Terima kasih kepada Alan. Saya menemukan bahwa pendekatan ini direkomendasikan dalam dokumentasi resmi mereka .
PS2: Kadang
boot2docker init
- kadang diperlukan sebelum menjalankan dua perintah (terima kasih Aaron).sumber
Dalam kasus saya (Linux Mint 17) saya melakukan berbagai hal, dan saya tidak yakin yang mana yang benar-benar diperlukan.
Saya termasuk paket Ubuntu yang hilang:
Seorang pengguna ditambahkan ke grup
docker
:Memulai daemon (openSUSE hanya perlu ini)
Terima kasih \ atribusi
Terima kasih Usman Ismail , karena mungkin itu yang terakhir ...
Terima kasih juga kepada github @ MichaelJCole untuk solusi yang bekerja untuk saya, karena saya tidak memeriksa daemon ketika saya membaca komentar Usman.
Komentar GitHub :
Berkat posting fredjean.net karena memperhatikan paket yang hilang dan melupakan instruksi instalasi Ubuntu default dan google tentang cara lain
Berkat komentar brettof86 tentang openSUSE
sumber
sudo adduser $USER docker
,. Trik untuk membuatnya berlaku pada shell saat inicurgroup=$(id -gn) && newgrp docker && newgrp $curgroup
, diadaptasi dari superuser.com/questions/272061/…Masalah yang digarisbawahi adalah sederhana - kurangnya izin untuk
/var/run/docker.sock
melepas soket domain.Dari bab opsi soket Daemon dari referensi Docker Command Line untuk Docker 1.6.0:
Langkah-langkah yang diperlukan untuk memberikan hak kepada pengguna dijelaskan dengan baik dalam instruksi instalasi Docker untuk Fedora :
Logout dan masuk kembali agar perubahan di atas berlaku. Harap dicatat bahwa paket Docker dari beberapa distribusi Linux (Ubuntu) sudah ditempatkan
/var/run/docker.sock
didocker
grup sehingga dua langkah pertama di atas tidak diperlukan.Dalam kasus OS X dan
boot2docker
situasinya berbeda; daemon Docker berjalan di dalam VM sehinggaDOCKER_HOST
variabel lingkungan harus diatur ke VM ini sehingga klien Docker dapat menemukan daemon Docker. Ini dilakukan dengan menjalankan$(boot2docker shellinit)
di shell.sumber
boot2docker shellinit
dan perintah lain adalah bahwa perintah ini tidak membuat perubahan apa pun, tetapi hanya menghasilkan (mencetak) perintah yang harus Anda jalankan sendiri. Anda dapat menjalankanboot2docker shellinit
pertama dan kemudian secara manual menyalin dan menjalankan setiap perintah dari outputnya. Lebih mudah menjalankan semua perintah dengan menjalankanboot2docker shellinit
subprocess (dengan$()
sintaksis) karena dengan cara ini setiap baris output dijalankan secara otomatis sebagai perintah shell. Lihat docs.docker.com/installation/mac/#from-your-command-line di mana ini ditampilkan secara rinci.sudo service docker status
. Di Ubuntu 14.04 saya tidak berjalan setelah instalasi, yang menyebabkan kesalahan.Pastikan daemon Docker berjalan:
Itu memperbaikinya bagi saya!
sumber
sudo service docker start
untuk sayasystemctl enable docker.service
dansystemctl start docker.service
Untuk pengguna system.d linux (Arch dalam kasus saya)sudo service docker restart
untuk saya$ docker version
perintah query adalah internal untuk dieksekusi Docker dan tidak untuk menjalankan daemon / jasa.$ docker images or $ docker ps or $ docker pull centos
adalah perintah yang mengirim pertanyaan ke daemon docker / layanan yang berjalan.docker
atau Anda telah menggunakansudo
sebelum perintah, misalnya$ sudo docker images
, itu tidak memerlukan konektivitas TLS.Kunjungi halaman dokumentasi Docker. Lindungi soket daemon Docker .
Gulir sedikit ke atas dan temukan
warning section
kejelasannya.sumber
sudo usermod -a -G docker {username}
Anda perlu melakukan:
Pengaturan berikut memperbaiki masalah:
sumber
eval "$(boot2docker shellinit)"
Mungkin saja Anda belum memiliki izin untuk file tersebut. Itu terjadi pada saya setelah saya menambahkan diri ke
docker
grup menggunakantapi belum keluar.
Untuk mengatasi ini, Anda dapat masuk kembali, atau menggunakan
sg docker "docker <subcommand> ..."
sebelum Anda keluar.Jika Anda berada dalam kelompok
docker
di/etc/group
, Anda harus bisa menjalankannya tanpa password mengetik.https://dingyichen.wordpress.com/2015/02/05/docker-dial-unix-varrundocker-sock-no-such-file- atau-directory-are-you-trying-to-connect-to-a- tls-enabled-daemon-without-tls /
sumber
Di Ubuntu setelah menginstal lxc-docker Anda perlu menambahkan pengguna Anda ke grup pengguna buruh pelabuhan :
Ini karena izin file soket:
JANGAN LARI usermod TANPA "-a" seperti yang disarankan di salah satu komentar lain atau itu akan menghapus pengaturan grup tambahan Anda dan hanya akan meninggalkan grup "buruh pelabuhan"
Inilah yang akan terjadi:
sumber
TLDR : Ini membuat grup meetup Python saya melewati masalah ini ketika saya menjalankan klinik untuk menginstal docker dan sebagian besar pengguna menggunakan OS X:
jalankan
export
perintah yang diberikan oleh output kepada Andaharus memberitahu Anda itu berfungsi.
Konteks (apa yang membawa kita ke masalah)
Saya memimpin sebuah klinik tentang menginstal buruh pelabuhan dan sebagian besar peserta memiliki OS X, dan kami mengalami masalah ini dan saya mengatasinya pada beberapa mesin. Inilah langkah-langkah yang kami ikuti:
Pertama, kami memasang homebrew (ya, beberapa peserta tidak memilikinya):
Lalu kami mendapat tong, yang kami gunakan untuk menginstal virtualbox, dan kemudian menggunakan minuman untuk menginstal buruh pelabuhan dan boot2docker (semua diperlukan untuk OS X) Jangan gunakan sudo untuk minuman. :
Solusinya
Saat itulah kami mengalami masalah, penanya di sini. Berikut ini memperbaikinya. Saya mengerti
init
adalah kesepakatan satu kali, tetapi Anda mungkin harus menjalankanup
setiap kali Anda mulai buruh pelabuhan:Kemudian ketika
up
telah dijalankan, ia memberikan beberapaexport
perintah. Salin dan tempel dan jalankan.Akhirnya
docker info
harus memberitahu Anda itu terpasang dengan benar.Untuk Demo
Perintah lainnya harus mendemokannya. (pada linux Ubuntu saya membutuhkan sudo.)
Maka Anda harus menggunakan shell root di wadah:
Kembali ke bash pengguna asli Anda:
Cari pengidentifikasi heksadesimal sekitar 12 digit (0-9 atau af) di bawah "ID Penampung", misalnya
456789abcdef
. Anda kemudian dapat melakukan perubahan dan menamainya beberapa nama deskriptif, sepertidescriptivename
:sumber
Semua yang Anda butuhkan untuk menjalankan Docker di Linux Ubuntu / Mint:
Secara opsional, Anda mungkin perlu menginstal dua dependensi tambahan jika hal di atas tidak berfungsi:
sumber
sudo service docker start
menyelesaikan masalah pada Ubuntu 14.04 saya.Saya mencoba solusinya di sini, dan boot2docker tidak berfungsi.
Solusi saya: Hapus instalan boot2docker di Mac, instal Centos 7 VM di VirtualBox, dan bekerja dengan Docker di dalam VM itu.
sumber
Bagi saya langkah-langkah berikut berhasil:
docker run hello-world
gagal dengan kesalahan socked ini seperti dalam pertanyaan, tetapi menjalankansudo docker run hello-world
berhasil.docker
grupsudo adduser user docker
,. Maka Anda harus me-restart mesin Anda atau menggunakansu - user
(periksa menggunakangroups
perintah jika ada dalamdocker
grup).Setelah itu,
hello-world
mulai bekerja.Jawaban saya didasarkan pada Bagaimana saya bisa menggunakan buruh pelabuhan tanpa sudo? yang menjelaskan apa yang salah.
sumber
Untuk apa nilainya, saya mencoba semua solusi dalam pertanyaan ini dan dalam pertanyaan terkait ini dan tidak ada yang menyelesaikan masalah saya sampai saya mencopot dan menginstal ulang VirtualBox . Proses ini memutakhirkan VirtualBox dari versi 4.2.16 ke 4.3.22 (yang sebelumnya tidak digunakan pada sistem selama beberapa bulan).
Kemudian
boot2docker
dandocker
bekerja tanpa penyesuaian lainnya.sumber
Saya memiliki masalah yang sama. Sederhana
service docker restart
memecahkan masalah.sumber
Daemon Docker mengikat ke soket Unix alih-alih port TCP. Secara default soket Unix dimiliki oleh root pengguna dan pengguna lain hanya dapat mengaksesnya menggunakan sudo. Daemon Docker selalu berjalan sebagai pengguna root.
Logout dan log in kembali sehingga keanggotaan grup Anda dievaluasi kembali.
Sumber: Kelola Docker sebagai pengguna non-root
sumber
Saya memiliki masalah yang sama dan mencoba berbagai hal untuk memperbaikinya, mengubah file .bash_profile, masuk dan keluar, tanpa hasil. Pada akhirnya, me-restart mesin saya memperbaikinya.
sumber
Pastikan ada
di Anda
mengajukan.
sumber
Saya menghadapi masalah yang sama ketika saya membuat gambar Docker dari Jenkins. Cukup tambahkan pengguna ke
docker
grup dan kemudian restart layanan Docker dan dalam kasus saya saya harus me-restart layanan Jenkins.Ini adalah kesalahan yang saya dapatkan:
sumber
Alasan lain yang mungkin adalah bahwa visualisasi CPU BIOS Anda tidak diaktifkan. Pergi dan aktifkan dulu!
sumber