Подтвердить что ты не робот

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

Обычно я предпочитаю управлять своими приложениями на своем OSX с помощью brew

Я могу установить 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'.

Я уже проверил файл 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

Я также пробовал это предлагаемое решение: Mac OS X sudo docker Не удается подключиться к демону Docker. Домен docker работает на этом хосте?

Но я получил это сообщение об ошибке:

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

Возможно ли получить службу докеров для запуска с помощью средств командной строки?

4b9b3361

Ответ 1

На поддерживаемом Mac запустите:

brew cask install docker

Затем запустите приложение Docker. Нажмите кнопку "Далее. Это попросит привилегированный доступ. Подтвердить. Значок кита должен появиться в верхней панели. Нажмите на нее и подождите, пока появится "Docker is running".

Теперь вы сможете запускать команды docker:

docker ps

Поскольку docker является пакетом системного уровня, вы не можете установить его с помощью brew install, а вместо этого должны использовать cask.

Примечание. Это решение работает только для компьютеров Mac, процессоры которых поддерживают виртуализацию, которые могут не включать старые компьютеры Mac.

Ответ 2

В macOS бинарный файл docker является только клиентом, и вы не можете использовать его для запуска демона docker, потому что демон Docker использует специфичные для Linux функции ядра, поэтому вы не можете запустить Docker в OS 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, вы можете пропустить этот шаг.

  • Использование Homebrew: 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 и локальной виртуальной машиной.


Связанный:

Ответ 3

У меня была такая же проблема, как я решил это в следующих шагах:

docker-machine restart

Закройте терминал (или iTerm2 и т.д. И т.д.) И перезапустите

eval $(docker-machine env default)

Я также ответил на это здесь

Ответ 4

Попробуйте создать по умолчанию.

docker-machine create default

Ответ 5

в OSX убедитесь, что вы запустили приложение Docker перед выдачей

docker ps

или docker build... и т.д... да, это кажется странным и несколько вводящим в заблуждение, что выдача

docker --version

выдает версию, даже если демон docker не запущен... то же самое для других версий cmds... я только что столкнулся с точно такими же симптомами... это поведение в OSX отличается от поведения в linux

Ответ 6

У меня Mac OS, и я открываю Launchpad и выбираю приложение docker. из вкладки reset нажмите на restart.

Ответ 7

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

unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY

Ответ 8

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

Для меня проблема была решена путем выполнения "Docker Quickstart Terminal.app". Он находится в папке "/Applications/Docker/". Пока я работаю в этом примере приложения Terminal, Docker работает отлично. Если требуется второе окно, мне нужно снова запустить приложение "Быстрый старт".

У меня есть установка Docker для Mac. Поэтому я не уверен, что мое решение действительно для установки Homebrew.

"Приложение Docker Quickstart Terminal", по-видимому, по сути является некоторыми приложениями для запуска терминального приложения и bash start script, которые инициализируют все необходимые переменные среды.

Надеюсь, это поможет кому-то еще!

Ответ 9

Поскольку управление процессами по своей сути затруднено с MacOS (в отличие от традиционной операционной системы * nix с такими вещами, как SystemD и init), вам нужно запустить приложение для запуска и запустить в фоновом режиме, чтобы позволить демону работать (и иметь простой доступ к управлению).

brew install просто устанавливает утилиты CLI. brew cask install предназначена для утилит GUI. Таким образом, при установке докеры вы должны предварительно создать BOTH-установки, чтобы получить утилиту GUI daemon и утилиту CLI. Надеюсь, это объяснит тот, кто был расстроен тем, что Brew не установил оба по умолчанию!

Ответ 10

Установите миникуб и присоединяйтесь к темной стороне.

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. Не нужно устанавливать всю другую чушь докера в наши дни ИМО. Исходя из моего опыта, виртуальная машина и скрипт установки, поставляемый с мини-кубом, могут заменить докер.

Ответ 11

Лучшее решение - установить и начать использовать Docker for Mac.

Ответ 12

Сначала я попробовал докер и докер с помощью доморощенного, но в нем была проблема, перечисленная здесь. Мне пришлось установить официальную установку docker с https://docs.docker.com/docker-for-mac/install/, и тогда все работало должным образом.

Ответ 13

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

Ответ 14

Я столкнулся с подобной проблемой на моем Mac, и я обнаружил, что на моей машине не работает докер, я просто зашел в приложения и вызвал кита, а затем все заработало.