Как запустить docker daemon mac os

Обновлено: 07.07.2024

Я хочу, чтобы Docker для Mac запускался при загрузке, а не при входе в систему. Как мне это сделать? Я хотел бы создать LaunchDaemon, я просто не знаю, какую программу запустить.

все примеры, которые я вижу, похоже, используют docker-machine чтобы определить VM, но в документации теперь говорится, что docker-machine теперь не так, если вы хотите использовать виртуальную машину по умолчанию, созданную при установке Docker, поскольку Docker для Mac не использует docker-machine для создания виртуальной машины.

причина в том, что я хочу начать Docker для запуска контейнеров Jenkins и Nexus при загрузке, так как сервер будет использоваться как сервер CI. Графический интерфейс Docker имеет опцию предпочтения запуска при входе в систему, что не то же самое, что при загрузке.

я запускаю OSX Sierra.

tl; dr проще запустить Docker в виртуальной машине VirtualBox, либо создав простую виртуальную машину, либо используя docker-machine . затем установите VM для запуска при загрузке

настройки для Mac

приложение Docker для Mac создает службу launchd:

сервис имеет следующие реквизиты:

и имеет следующее дерево процессов:

первая проблема-это /Applications/Docker.app/Contents/MacOS/Docker это приложение GUI, которое сидит в ваш лоток, а не виртуальная машина, так что это будет трудно запустить во время загрузки. Первый потомок!--12--> больше похоже на то, что управляет виртуальной машиной, поэтому мы начнем там.

получить полную команду процесса hyperkit

получить рабочий каталог процесса

создать файл launchd plist /Library/LaunchDaemons/com.you.docker.plist содержащий сведения

, который вы можете загрузить с

затем. ничего. Проверьте журналы

вы заметите, что команда, которую мы запускаем, указывает опцию -watchdog fd:0 что будет stdin процесса hyperkit, поэтому, вероятно, чего-то не хватает.

если я снова запускаю Docker и смотрю, что FD 0 для процесса hyperkit, когда он работает

смотрим PIPE 0xff80ce577ca2ed91 по всей системе вы увидите, что основной процесс Докера имеет открытую трубу для многих процессов.

попытка загрузить службу снова без -watchdog fd:0 options приводит к той же ошибке.

таким образом, похоже, что основное приложение Docker выполняет некоторую настройку, необходимую для запуска виртуальной машины. Я не смог найти исходный код для любых сделок с watchdog вариант, поэтому не уверен, что он ожидает.

docker - утилита, общающаяся через сокет с хостом Docker ( docker daemon ). Является клиентом.

docker-machine - средство для управления машинами с Docker, а так же их создания. Расширярется так называемыми драйверами.

docker-compose - утилита для определения и выполнения кросс-контейнерных приложений. Позволяет объединить и настроить связку отдельных приложений в контейнерах, например, для веб-сервера: nginx, MySQL, PHP.

Использование MacOS машины как хоста

Самый очевидный способ использования Docker на Mac, учитывая, что Docker может создавать контейнеры только на ядре Linux, это использование виртуальной машины. Уже самые первые Mac на платформе Intel позволяли использовать паравиртуализацию и аппаратное ускорение для запуска виртуальных машин, но родного гипервизора не было: различные производители ПО, вроде VMware и Parralells заняли нишу гипервизоров на MacOS. Конечно же, было еще и бесплатное решение от Oracle (Virtual Box), но оно не такое удобное. В любом случае эти гипервизоры были сделаны в виде расширения ядра и порой были не очень стабильны. Начиная с Yosemite Apple добавили Hypervisor.framework, представляющий из себя API для создания HVM (аппаратных виртуальных машин). Сложно назвать это средство полноценным гипервизором, но первое достаточно массовое решение на нем - xhyve и Veertu. xhyve - гипервизор, портированный с FreeBSD и позволяет запускать Linux-машины.

До появления Hypervisor.framework и проекта xhyve предлагалось запускать Docker в виртуальной машине, используя гипервизор Virtual Box или любой другой (при помощи утилиты docker-machine у которой есть свои "драйверы", позволяющие автоматизировать создание, запуск и работу с виртуальными машинами) из предложенных. Это legacy-решение, но оно до сих пор поддерживается.

Современное же решение – это запуск виртуальной машины с использованием встроенного в MacOS процесса виртуализации. Docker назвали его HyperKit и его кодовая база практически полностью основана на проекте xhyve.

Старый способ (Docker Toolbox), как и драйверы для многих гипервизоров, разворачивают в стороннем гипервизоре образ ОС Boot2Docker.

Современный способ (Docker for Mac)

Данный способ поддерживает только Yosemite 10.10.3 и старше, но рекомендуется El Capitan и выше. Используется HyperKit, встроенная в MacOS виртуализация.

Установка проста и описана на странице Docker for Mac. Необходимо скачать DMG-контейнер, перетащить его содержимое и запустить Docker. Будут установлены консольные утилиты (docker, docker-machine, docker-compose), а также графическая оболочка для управления виртуальной машиной, в которой запущен Docker и бета-версия официальной графической утилиты для управления контейнерами Kitematic. Сразу же после этого можно использовать Docker в полную силу.

Старый способ (Docker Toolbox)

Установка так же простая и описана на странице Docker Toolbox. Установщик сам установит все необходимое, в том числе и гипервизор Oracle VirtualBox. Управлять можно с приложения Kitematic и терминала. Специально сделан шорткат, который можно найти в Launchpad и который позволит подключиться к виртуальной машине. Его же необходимо будет запустить в первый раз, так как он сам сделает виртуальную машину и настроит ее. Далее можно подключаться просто с терминала, выполнив вначале eval $(docker-machine env dev) , после чего можно общаться с docker посредством команды docker .

Рекомендуется настроить виртуальную машину Virtual Box так, чтобы она имела статический IP адрес, но была за NAT. В таком случае можно будет запускать контейнер через docker-machine или VBoxManage , либо с графического интерфейса, после чего работать с ней с обычного терминала.

Другой гипервизор

Для использования другого гипервизора необходимо установить комплект консольных утилит (docker, docker-mahine, docker-compose[^*]). Сделать это можно, установив Docker любым из способов, описанных выше, либо установив консольные утилиты через Homebrew. Кроме того, если уже установлен Virtual Box и Homebrew, то установив через него утилиты можно сделать виртуальные машины для Docker и управлять самим Docker.

[^*]: Необязателен для использования, зависит от поставленной задачи.

Чтобы создать виртуальную машину через docker-machine необходимо изучить документацию к необходимому драйверу. Для тех, что присутствуют по умолчанию, можно посмотреть в официальной документации Docker. Например, для создания виртуальной машины в VMware Fusion необходимо выполнить

После чего для для управления через docker необходимо выполнить

Чтобы точно знать, что мы управляем нужной машиной всегда можно набрать

Использование облачных сервисов и управление через Docker API

Другая машина (VPS, VDS, любой "соседний" ПК на Linux или ВМ)

Чтобы управлять Docker на любой другой машине необходимо воспользоваться драйвером Generic. Он позволит добавить через SSH с ключом или паролем любую машину в реестр docker-toolbox для удобства дальнейшего подключения через утилиту docker .

Почитать по управлению с по мощью драйвера можно в отдельной статье.

IaaS Azure, AWS, OpenStack и прочие

Используя необходимый драйвер в docker-machine можно создать виртуальную машину с Docker на практически любом популярном IaaS сервисе.

Для примера разберем MS Azure в отдельной статье.

Дополнительные драйверы для docker-machine

Если хочется использовать Docker с xhyve или же Parallels, Vultr, то можно поставить драйверы их Homebrew.

Автодополнение Docker для шелла

Чтобы было наиболее удобно управлять Docker имеет смысл установить автодополнение для шела. К сожалению, в версии для Mac оно не поставляется ни в одном варианте.

Homebrew

Если еще не установлен менеджер пакетов brew, то стоит его установить.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Лучше использовать шел ZSH. Он легко расширяется модулями и для него больше хороших модулей автодополнения. .

Установить автодополнение для docker, docker-machine, docker-compose не составит труда.

brew install docker-completion docker-machine-completion docker-compose-completion

После установки чтобы автодополнение работало проще всего открыть новую вкладку терминала и проверить работоспособность.

Для установки автодополнения для шела bash необходимо выполнить после установки с Homebrew.

Только установка docker (CLI), docker-machine, docker-compose

Используя Homebrew можно установить указанные выше утилиты для управления docker на любой виртуальной (иди другой) машине без лишних утилит. Можно добавить машину в docker-machine и легко получить к ней доступ через команду eval $(docker-machine env machinename) , после чего управлять ей через docker .

Я не загружал и не запускал приложение «Докер для Mac».

Однако, когда я пытаюсь бежать

Я уже проверил файл носка

Можно ли заставить Docker-сервис работать с помощью инструментов командной строки?

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

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

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

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

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

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

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

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

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

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

После этого docker-compose должен работать

eval $(minikube docker-env)

Отлично работает на Macbook Pro 2018 с bash v5. Не нужно устанавливать всю другую чушь докера в наши дни ИМО. Исходя из моего опыта, виртуальная машина и скрипт установки, поставляемый с мини-кубом, могут заменить докер.

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

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

Docker для Mac устарел. И вам не нужен Homebrew для запуска Docker на Mac. Вместо этого вы, вероятно, захотите установить Docker Desktop или, если он уже установлен, убедиться, что он обновлен и работает, а затем попытаться снова подключиться к сокету.

enter image description here

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

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

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

Приложение «Docker Quickstart Terminal», по-видимому, по сути представляет собой несколько скриптов для запуска приложения терминала и сценарий запуска bash, который инициализирует все необходимые переменные среды.

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

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

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

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

В macOS docker является только клиентом, и вы не можете используйте его для запуска демона docker, потому что демон Docker использует специфичные для Linux функции ядра, поэтому вы не можете запустить Docker в OS X. Поэтому вы должны установить docker-machine , чтобы создать виртуальную машину и подключиться к ней.

Установить docker-machine в macOS

Если у вас еще нет команды docker-machine , установите ее с помощью один из следующих методов:

Вручную со страницы релизов:

Установите Virtualbox

docker-machine зависит от установленного VirtualBox и завершится ошибкой, если это не так. Если у вас уже есть VirtualBox, вы можете пропустить этот шаг.

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

Докер на Mac

Платформа, известная как Docker, стала одним из самых популярных способов запуска нового вида программного обеспечения, известного как контейнерные приложения. И хотя Docker в основном ориентирован на программистов, есть несколько причин, по которым обычные пользователи Mac могут захотеть этого.

Что такое контейнерные приложения?

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

Как работает Docker?

Когда вы запускаете простое в установке приложение Docker, оно запускается в фоновом режиме, и вы можете использовать Terminal или другое приложение под названием Kitematic (мы вернемся к этому позже) для установки и запуска контейнерных приложений.

Для кого предназначен Docker?

Как упоминалось выше, Docker в основном нацелен на программистов, которые хотят контейнировать существующие приложения или написание новых, а также на бизнес и ИТ-специалистов, которые хотят использовать его программное обеспечение промышленного уровня.

Прочтите: Лучший взлом Pokémon Go: Как начать игру с Пикачу |

Существуют Docker-версии привычных настольных приложений, таких как Firefox, Chrome, Skype, Spotify, редактор изображений GiMP и аудио редактор Audacity. Но большинство из этих приложений уже имеют собственные версии Mac. Запускать их в контейнерах имеет смысл только в том случае, если вам нравится техническая задача, вы хотите, чтобы одно приложение не перегружало всю память вашей системы, или вы хотите, чтобы любая вредоносная программа, которую вы можете обнаружить во время просмотра веб-страниц, оставалась внутри своего контейнера и не могла сбежать на остальной части вашего Mac.

Как установить Docker на свой Mac

1. Создайте учетную запись Docker Hub.

Docker Hub отслеживает контейнеры, которые вы запускаете (или создаете), и предоставляет универсальный магазин для поиска новых. Зарегистрируйте учетную запись Docker с уникальным идентификатором Docker, адресом электронной почты и надежным паролем.

2. Загрузите Docker Desktop для Mac

После регистрации и входа в Docker Hub установите Docker Desktop для Mac. В нем есть все, что вам нужно для запуска Docker в одном Mac-дружественном установщике. Ваш Mac должен работать под управлением Mac OS Sierra или более поздней версии и иметь как минимум 4 ГБ ОЗУ.

3. Установите Docker Desktop на свой Mac

Открыть docker.dmg файл, который вы скачали, и перетащите значок кита в приложении Docker в папку «Приложения».

Установка Docker не смогла

4. Откройте и запустите Docker

Когда вы запустите приложение Docker, в правой части меню над вашим экраном появится значок маленького кита. Запуск займет несколько минут, и Docker может попросить вашего разрешения использовать службы на вашем компьютере. Приложение также предложит вам ввести идентификатор Docker и пароль, который вы только что создали.

Сделай кита счастливым. Войдите с вашим идентификатором Docker.

Когда контейнеры перестают появляться и исчезать над маленькой иконкой кита в строке меню, и вы видите зеленую точку в верхней части меню Docker рядом с «Docker Desktop работает», все готово.

Прочтите: Как использовать сенсорную панель с приложением «Почта» на MacBook Pro |

Обратитесь к разделу «Настройки» в меню Docker, чтобы определить, какой большой объем выделенного Docker жесткого диска и сколько памяти и ЦП ему разрешено использовать, среди других параметров.

5. Скачайте и установите Kitematic

Kitematic - твой друг. дон

В Kitematic вы можете искать и устанавливать новые контейнеры, а также удалять, редактировать, останавливать или перезапускать существующие. Если контейнер работает, Kitematic предоставляет вам простой способ просмотра его файлов журнала, которые не всегда видны из Терминала. Интерфейс довольно интуитивно понятен, поэтому вы можете поиграть и посмотреть, что вы можете сделать.

Kitematic предлагает дружественный графический интерфейс для управления и установки пакетов Docker.

В моих тестах Kitematic оказался наиболее полезным для удаления проблемных контейнеров, установку которых я как-то испортил. Просто найдите контейнер в списке в левой части окна Kitematic, щелкните значок X рядом с ним, и контейнер полностью исчез. Вы всегда можете переустановить пакет, либо из Терминала, либо выполнив поиск в Kitematic, и попробуйте снова.

Где я могу узнать больше о Docker для Mac?

Консультируйтесь с Docker для файлов справки Mac для получения дополнительной информации о начале работы, способах проверки, что ваша установка запущена и работает гладко, и больше вещей, которые вы можете сделать с Docker. Также есть руководство, которое научит вас создавать свои собственные приложения в контейнерах.

Для менее технически настроенных людей сложно найти хороший список настольных приложений, которые работают с Docker. Docker Hub не разбивает настольные приложения на отдельные категории, но Джесси Фразель составила этот список в 2015 году.

Помимо Pi-hole, есть ли у вас какие-нибудь любимые контейнеры Docker, которые могут принести пользу обычным пользователям Mac? Отправьте их нам в комментариях ниже.

Читайте также: