Tidak dapat terhubung ke daemon Docker di macOS

207

Saya biasanya lebih suka mengelola aplikasi saya di OSX saya dengan minuman

Saya dapat menginstal buruh pelabuhan, buruh pelabuhan dan mesin buruh pelabuhan

docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455

Saya tidak mengunduh dan menjalankan aplikasi 'Docker for Mac'.

Namun ketika saya mencoba lari

> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

Saya sudah memeriksa file sock

ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory

Saya juga telah mencoba solusi yang diusulkan ini: Mac OS X sudo docker Tidak dapat terhubung ke daemon Docker. Apakah daemon buruh pelabuhan berjalan di host ini?

Tapi saya mendapat pesan kesalahan ini:

$ eval $(docker-machine env default)
Host does not exist: "default"

Apakah mungkin untuk mendapatkan layanan buruh pelabuhan untuk dijalankan oleh alat-alat baris perintah?

Anthony Kong
sumber
2
Luncurkan aplikasi Docker dari Launchpad, akan menampilkan dialog yang meminta agar untuk menjalankan Aplikasi, diperlukan beberapa hak istimewa untuk Aplikasi ini, setelah ini, Docker kembali ke permainan.
Rafael Kerr
Dalam kasus saya, ada pengguna lain yang masuk karena itu gagal. Keluar pengguna lain dan bekerja kemudian
Raza Ahmed

Jawaban:

473

Pada Mac yang didukung, jalankan:

brew cask install docker

Kemudian luncurkan aplikasi Docker . Klik selanjutnya. Itu akan meminta akses istimewa. Konfirmasi. Ikon paus akan muncul di bar bagian atas. Klik dan tunggu hingga "Docker is running" muncul.

Anda seharusnya dapat menjalankan dockerperintah sekarang:

docker ps

Karena buruh pelabuhan adalah paket tingkat sistem, Anda tidak dapat menginstalnya menggunakan brew install, dan harus menggunakan tong itu.

Catatan: Solusi ini hanya berfungsi untuk Mac yang CPU-nya mendukung virtualisasi, yang mungkin tidak termasuk Mac lama.

friederbluemle
sumber
10
Ini harus menjadi jawaban yang diterima. Pergi ke landasan peluncuran setelah menginstal dan mencari buruh pelabuhan
Joe Lloyd
39
Saya melakukan pembuatan bir docker dan aplikasi tidak diinstal sampai saya menjalankan perintah pembuatan bir tong menginstal docker. Terima kasih!
jbrahy
2
Apa yang terjadi jika perintah itu masih tidak berfungsi bahkan setelah tong itu dipasang (dan paus Docker menunjukkannya berjalan setelah kata sandi diberikan)?
vol7ron
2
Solusi ini hanya berfungsi untuk Mac yang CPU-nya mendukung virtualisasi. Ini tidak bekerja pada 2009 Mac Pro, misalnya. Bisakah Anda mengedit jawaban Anda untuk memasukkan fakta penting ini?
John Y
3
Ini membantu saya seperti yang saya gunakan brew install dockerpada awalnya. brew installberurusan dengan layanan CLI dan brew cask installmerupakan ekstensi yang membantu menangani layanan dengan antarmuka pengguna grafis.
Binoy S Kumar
107

Pada macOS dockerbiner hanya klien dan Anda tidak dapat menggunakannya untuk menjalankan daemon docker, karena daemon Docker menggunakan fitur kernel khusus Linux, oleh karena itu Anda tidak dapat menjalankan Docker secara native di OS X. Jadi Anda harus menginstal docker-machineuntuk membuat VM dan lampirkan.

Instal docker-machinedi macOS

Jika Anda belum memiliki docker-machineperintah, instal dengan menggunakan salah satu metode berikut:

  • Menggunakan Brew perintah: brew install docker-machine docker.
  • Secara manual dari halaman Siaran :

    $ curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
    $ chmod +x /usr/local/bin/docker-machine
    

Lihat: Memulai dengan Docker untuk Mac .

Instal Virtualbox

docker-machinebergantung pada VirtualBox yang diinstal dan akan gagal jika ini tidak terjadi. Jika Anda sudah memiliki VirtualBox, Anda dapat melewati langkah ini.

  • Menggunakan Homebrew: brew cask install virtualbox
  • Menggunakan rilis secara manual di Virtualbox.org

Anda harus secara aktif menerima pemuatan ekstensi kernel Virtualbox di panel Keamanan OS X dan kemudian melanjutkan untuk me-restart mesin agar perintah berikutnya tidak gagal denganError: VBoxNetAdpCtl: Error while adding new interface

Konfigurasikan docker-machine di macOS

Buat defaultmesin (jika Anda tidak memilikinya, lihat docker-machine ls:):

docker-machine create --driver virtualbox default

Kemudian atur lingkungan untuk klien Docker:

eval "$(docker-machine env default)"

Kemudian periksa kembali dengan mencantumkan kontainer:

docker ps

Lihat: Memulai dengan Mesin Docker dan VM lokal .


Terkait:

kenorb
sumber
7
ini harus menjadi jawaban yang diterima. Ini dengan jelas menguraikan a) mengapa tidak bekerja, b) instruksi untuk membuatnya berfungsi tanpa mengunduh UI pada OSX dan c) tautan referensi untuk bacaan lebih lanjut.
user2490003
1
Saya juga harus menginstal virtualbox untuk mendapatkan perintah mesin buruh pelabuhan:brew cask install virtualbox
oligofren
1
Untuk memulai docker-machinelogin, gunakan brew services start docker-machineatau, jika Anda tidak ingin menggunakan Homebrew, lihat bagian "Mulai mesin lokal saat startup" dari halaman ini (termasuk instruksi untuk Mac).
Chris H.
40

Saya memiliki masalah yang sama dengan yang saya atasi pada langkah-langkah berikut:

docker-machine restart

Keluar dari terminal (atau iTerm2, dll, dll) dan mulai ulang

eval $(docker-machine env default)

Saya juga menjawabnya di sini

Master p
sumber
2
Yang eval "harus" menjadi semua yang Anda butuhkan :)
rogerdpack
15

Saya memiliki Mac OS dan saya membuka Launchpaddan memilih dockeraplikasi. dari resettab klik restart.

Ehsan Barkhordar
sumber
Ya, Anda harus meluncurkan aplikasi Docker terlebih dahulu haha
Ender
12

Coba ini untuk membuat default.

docker-machine create default
Mossaddeque Mahmood
sumber
5
ini hanya memberi saya ... docker-machine create default Creating CA: /Users/stens/.docker/machine/certs/ca.pem Membuat sertifikat klien: /Users/stens/.docker/machine/certs/cert.pem Running pemeriksaan pra-buat ... Kesalahan dengan pemeriksaan pra-buat: "VBoxManage tidak ditemukan. Pastikan VirtualBox diinstal dan VBoxManage ada di jalur" .... yang tampaknya salah karena VirtualBox tidak lagi diperlukan untuk menjalankan docker di osx
Scott Stensland
Muncul juga dapat Anda gunakan xhyve, lihat stackoverflow.com/a/42419979/32453 atau cukup instal virtualbox :)
rogerdpack
Dan .. jadi apa?
FrankyFred
7

di OSX pastikan Anda telah meluncurkan aplikasi Docker sebelum mengeluarkan

docker ps

atau docker build... dll ... ya sepertinya aneh dan agak menyesatkan mengeluarkan itu

docker --version

memberikan versi meskipun daemon docker tidak berjalan ... ditto untuk mereka cmds versi lain ... Saya baru saja mengalami gejala yang sama persis ... perilaku ini pada OSX berbeda dari di linux

Scott Stensland
sumber
3

Saya memiliki masalah yang sama. Docker berjalan tetapi tidak dapat mengaksesnya melalui CLI.

Bagi saya masalahnya diselesaikan dengan menjalankan "Docker Quickstart Terminal.app". Ini terletak di folder "/ Aplikasi / Docker /". Selama saya bekerja dalam hal ini aplikasi Terminal Docker berfungsi dengan baik. Jika diperlukan jendela kedua, saya harus menjalankan aplikasi "Quickstart" sekali lagi.

Saya memiliki instalasi Docker untuk Mac. Karena itu saya tidak yakin apakah solusi saya valid untuk instalasi Homebrew.

Aplikasi "Docker Quickstart Terminal" tampaknya pada dasarnya beberapa applescripts untuk meluncurkan aplikasi terminal dan skrip bash start yang menginisialisasi semua variabel lingkungan yang diperlukan.

Semoga ini bisa membantu orang lain!

beo
sumber
3

Saya memiliki buruh pelabuhan yang mutakhir, buruh pelabuhan mengatakan itu berjalan, dan diagnosisnya baik. Saya perlu menghapus beberapa variabel lingkungan lawas (terima kasih https://docs.docker.com/docker-for-mac/troubleshoot/#workarounds-for-common-problems )

unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY
Michael
sumber
1
ini memperbaiki masalah saya setelah pembaruan dari buruh pelabuhan berbasis VM ke Pemasang Mac. Itu terus mencari VM.
bobomoreno
gunakan ini jika Anda melihat alamat IP yang salah di 'Tidak dapat terhubung ... dll'
bobomoreno
2

Docker untuk Mac sudah usang. Dan Anda tidak perlu Homebrew untuk menjalankan Docker di Mac. Alih-alih Anda mungkin ingin menginstal Docker Desktop atau, jika sudah diinstal, pastikan itu up-to-date dan berjalan, kemudian coba sambungkan ke soket lagi.

masukkan deskripsi gambar di sini

Josh Habdas
sumber
2

Anda harus menjalankan skrip untuk menginstal buruh pelabuhan dan meluncurkannya dari baris perintah:

brew cask install docker
pip3 install docker-compose
open -a Docker
docker-compose ... 

setelah itu docker-composeharus bekerja

Boris Azanov
sumber
bekerja untuk saya, terima kasih
Soul Coder
1

Instal minikube dan bergabunglah dengan sisi gelap.

https://kubernetes.io/docs/tasks/tools/install-minikube/

$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-apple-darwin18.2.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

eval $(minikube docker-env)

$ docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate     -i /local/swagger.json     -l python     -o /local/test/
[main] INFO io.swagger.parser.Swagger20Parser - reading from /local/swagger.json
[main] WARN io.swagger.codegen.DefaultGenerator - 'host' not defined in the spec. Default to 'localhost'.

Berfungsi bagus di Macbook Pro 2018 dengan bash v5. Tidak perlu menginstal semua omong kosong buruh pelabuhan lainnya hari ini IMO. VM dan menginstal skrip yang datang dengan minikube dapat menggantikan mesin buruh pelabuhan dari pengalaman saya.

Ligemer
sumber
Sebagai komentar tindak lanjut, saya membutuhkan buruh pelabuhan juga untuk proyek lain w / o kube dan desktop buruh pelabuhan bekerja dengan baik. Hanya saja, jangan memulai selalu atau kubus marah dari posting ini.
Ligemer
1

Saya menghadapi masalah serupa di mac saya, dan saya menemukan bahwa buruh pelabuhan tidak berjalan di mesin saya, saya hanya pergi ke aplikasi dan memanggil ikan paus dan kemudian berhasil.

Rama Sharma
sumber
0

Saya pertama kali mencoba docker dan docker-compose via homebrew, tetapi ada masalah yang tercantum di sini. Saya harus menginstal menginstal resmi docker dari https://docs.docker.com/docker-for-mac/install/ dan kemudian semuanya bekerja seperti yang diharapkan.

Thomas Kessler
sumber
0

saya hanya harus menjalankan pencarian sorotan dan menjalankan aplikasi Docker di bawah / Aplikasi folder yang brew cask installdibuat. Setelah ini dijalankan, ia diminta untuk menyelesaikan instalasi. Saya kemudian bisa berlaridocker ps

wired00
sumber