Не вдається підключитися до демона Docker на macOS


204

Я зазвичай вважаю за краще керувати своїми програмами на моєму OSX за допомогою варіння

Я можу встановити docker, docker-compose та docker-machine

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

Я не завантажував і не запускав додаток "Docker for Mac".

Однак коли я намагаюся бігати

> 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'.

Я вже перевірив файл шкарпетки

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

Я також спробував таке запропоноване рішення: Док-док для Mac OS X не вдається підключитися до демона Docker. Чи працює цей докер-демон на цьому хості?

Але я отримав це повідомлення про помилку:

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

Чи можна отримати службу докера запуск інструментів командного рядка?


2
Запустіть програму Docker з Launchpad, буде показано діалогове вікно із запитом про те, що для запуску програми потрібно отримати деякі пільги для цього додатка, після цього Docker повернеться до гри.
Рафаель Керр

У моєму випадку був інший користувач, який увійшов в систему, ось чому він не працював. Вийдіть з іншим користувачем і працював тоді
Раза Ахмед

Відповіді:


466

На підтримуваному Mac запустіть:

brew cask install docker

Потім запустіть програму Docker . Клацніть далі. Він попросить пільговий доступ. Підтвердіть. У верхній смузі має з’явитися значок кита. Клацніть по ньому і зачекайте, поки з’явиться "Докер працює".

Ви повинні мати можливість запускати dockerкоманди вже зараз:

docker ps

Оскільки докер - пакет на системному рівні, ви не можете встановити його за допомогою brew install, а замість нього потрібно використовувати скриньку.

Примітка. Це рішення працює лише для Mac, чиї процесори підтримують віртуалізацію, яка може не включати старі Macs.


10
Це має бути прийнятою відповіддю. Перейдіть на стартовий майданчик після встановлення та пошуку докера
Джо Ллойд

39
Я зробив установку для встановлення пива, і додаток не було встановлено, поки я не запустив команду встановити докер встановлення бореків. Дякую!
jbrahy

2
Що станеться, якщо команда все ще не працює навіть після встановлення скриньки (і кит Docker показує, що вона працює після введення пароля)?
vol7ron

2
Це рішення працює лише для Mac, чиї процесори підтримують віртуалізацію. Наприклад, це не працює на Mac Pro 2009, наприклад. Чи можете ви відредагувати свою відповідь, щоб включити цей важливий факт?
Іоанн Y

3
Це допомогло мені, як я використовував brew install dockerспочатку. brew installмати справу з послугами CLI і brew cask installє розширенням, яке допомагає працювати з послугами з графічним інтерфейсом користувача.
Біной S Кумар

106

У macOS dockerбінарний файл є лише клієнтом, і ви не можете використовувати його для запуску демона docker, оскільки демон Docker використовує особливості ядра Linux, тому ви не можете запускати Docker в ОС Windows X. Тому вам потрібно встановити docker-machine, щоб створити ВМ і приєднати до нього.

Встановити docker-machineна macOS

Якщо ви ще не маєте docker-machineкоманди, встановіть її за допомогою одного з таких способів:

  • Використовуючи Brew команду: brew install docker-machine docker.
  • Вручну зі сторінки випусків :

    $ 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
    

Див. Початок роботи з Docker для Mac .

Встановіть Virtualbox

docker-machineпокладається на встановлення VirtualBox і вийде з ладу, якщо це не так. Якщо у вас вже є VirtualBox, ви можете пропустити цей крок.

  • Використання домашньої мови: brew cask install virtualbox
  • Вручну за допомогою випусків на Virtualbox.org

Вам потрібно буде активно приймати завантаження розширення ядра Virtualbox на панель безпеки OS X, а потім перейти до перезавантаження машини для наступних команд, щоб не вийти з ладуError: VBoxNetAdpCtl: Error while adding new interface

Налаштування docker-machineна macOS

Створіть defaultмашину (якщо у вас її немає, див. docker-machine ls:):

docker-machine create --driver virtualbox default

Потім налаштуйте середовище для клієнта Docker:

eval "$(docker-machine env default)"

Потім двічі перевірте, перерахувавши контейнери:

docker ps

Див. Початок роботи з Docker Machine та місцевим VM .


Пов'язані:


7
це має бути прийнятою відповіддю. У ній чітко викладені: а) чому він не працює; б) інструкції з його роботи без завантаження інтерфейсу користувача на OSX та в) посилання на посилання для подальшого читання.
користувач2490003

1
Я також мав встановити VirtualBox , щоб отримати команди Докер-машини для роботи:brew cask install virtualbox
oligofren

1
Щоб почати docker-machineвхід у систему, використовуйте brew services start docker-machineабо, якщо ви не хочете використовувати Homebrew, див. Розділ «Запуск локальних машин при запуску» на цій сторінці (включає інструкції для Mac).
Кріс Х.

40

У мене була ця сама проблема, і я вирішив її наступними кроками:

docker-machine restart

Закрийте термінал (або iTerm2, тощо, тощо) та перезапустіть

eval $(docker-machine env default)

Я також відповів на це тут


2
Овальний "повинен" бути усім, що вам потрібно :)
rogerdpack

15

У мене Mac OS, я відкриваю Launchpadта вибираю dockerпрограму. на resetвкладці натисніть на restart.


Так, ви повинні запустити програму Docker спочатку ха-ха
Ендер

12

Спробуйте це створити за замовчуванням.

docker-machine create default

5
це лише дало мені ... docker-machine створити за замовчуванням Створення CA: /Users/stens/.docker/machine/certs/ca.pem Створення сертифіката клієнта: /Users/stens/.docker/machine/certs/cert.pem Запуск заздалегідь створити перевірки ... Помилка при попередньому створенні перевірки: "VBoxManage не знайдено. Переконайтесь, що VirtualBox встановлений і VBoxManage знаходиться в шляху" .... що здається неправильним, оскільки VirtualBox більше не потрібен для запуску докера на OSX
Scott Stensland

З'являється ви можете використовувати , xhyveа також, см stackoverflow.com/a/42419979/32453 або просто встановити VirtualBox :)
rogerdpack

І .. так що?
FrankyFred

7

в OSX запевняють, що ви запустили програму Docker перед видачею

docker ps

або docker build... тощо ... так, видається дивним і дещо оманливим

docker --version

надає версію, навіть якщо демон docker не працює ... ditto для тих інших версій cmds ... Я просто зіткнувся з абсолютно тими ж симптомами ... така поведінка на OSX відрізняється від на Linux


3

У мене була така ж проблема. Докер працює, але не міг отримати доступ до нього через CLI.

Для мене проблему було вирішено виконанням "Docker Quickstart Terminal.app". Це знаходиться в папці "/ Applications / Docker /". Поки я працюю в цьому екземплярі програми Terminal Docker працює чудово. Якщо потрібне друге вікно, мені доведеться ще раз запустити додаток "Швидкий запуск".

У мене встановлення Docker для Mac. Тому я не впевнений, чи моє рішення дійсне для установки Homebrew.

Додаток "Docker Quickstart Terminal", схоже, є по суті деякими апплементами для запуску програми терміналу та скриптом запуску bash, який ініціалізує всі необхідні змінні середовища.

Сподіваюся, це допоможе комусь іншому!


3

У мене був докер до цього часу, докер сказав, що він працює, і діагноз був хорошим. Мені потрібно було скасувати змінну спадщини (спасибі https://docs.docker.com/docker-for-mac/troubleshoot/#workarounds-for-common-problems )

unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY

1
це вирішило мою проблему після оновлення докера на базі VM до інсталятора Mac. Він продовжував шукати ВМ.
бобоморено

використовуйте це, якщо ви бачите неправильну IP-адресу в "Не вдається підключитися ... тощо"
bobomoreno

2

Докер для Mac застарілий. І вам не потрібно Homebrew для запуску Docker на Mac. Натомість ви, ймовірно, захочете встановити Docker Desktop або, якщо він уже встановлений, переконайтесь, що він оновлений та запущений, а потім спробуйте підключитися до сокета ще раз.

введіть тут опис зображення


2

Ви повинні виконати скрипт для встановлення докера та запустити його з командного рядка:

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

після цього docker-composeслід попрацювати


працював на мене, спасибі
Soul Coder

1

Встановіть minikube і приєднуйтесь до темної сторони.

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'.

Чудово працює на Macbook Pro 2018 з bash v5. Немає необхідності встановлювати всі інші докерські дурниці в ці дні IMO. Сценарій VM та встановлення, що постачається з minikube, може замінити докер-машину з мого досвіду.


Як подальший коментар, мені знадобився докер, а також для іншого проекту без куби, і робочий стіл докера працює чудово. Просто не запускайте його завжди, інакше кубе розлючується з цієї посади.
Лігемер

1

Я зіткнувся з подібною проблемою на моєму комп'ютері, і я виявив, що докер не працює в моїй машині, я просто зайшов у програми та викликав китів, а потім це спрацювало.



0

Мені просто довелося запустити пошук у центрі уваги та виконати програму Docker в папці / Applications, яку brew cask installстворили. Як тільки це було запущено, він попросив завершити встановлення. Я тоді зміг бігатиdocker ps

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.