Руководство для начинающих по установке и запуску Docker в Mac OS

(обновление 2021–01–10) ПРИМЕЧАНИЕ.
Какой-то любезный читатель сообщил мне, что, похоже, это не работает для Mac с Apple Silicone M1. Извините, но я не собираюсь осматривать в ближайшее время. Для пользователей M1 поищите другие ресурсы.

Конфигурации

Версия системы: macOS 10.14.3 (18D109)
Версия ядра: Darwin 18.2.0
Оболочка: zsh
Диспетчер пакетов: Homebrew

TL;DR

Если кратко, то весь процесс установки выглядит следующим образом.

$ brew install docker docker-machine
$ brew cask install virtualbox
-> need password
-> possibly need to address System Preference setting
$ docker-machine create --driver virtualbox default
$ docker-machine env default
$ eval "$(docker-machine env default)"
$ docker run hello-world
$ docker-machine stop default

Пошаговый процесс установки

Установка Docker через Homebrew

$ brew install docker
$ docker --version
Docker version 18.09.5, build e8ff056

Обратите внимание, что brew install docker и brew cask install docker разные. Некоторые инструкции по установке докера в Mac OS используют последний код, который устанавливает Docker как приложение, что вы можете увидеть хорошее объяснение.

⚠️ Вы не можете запустить Docker сразу после установки Docker. Если вы попробуете, то увидите:

$ docker run hello-world
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

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

Установка Docker-Machine через Homebrew

$ brew install docker-machine

⚠️ ️️ Вы все еще не можете создать машину, потому что у вас нет VirtualBox. Если вы попробуете, то увидите:

$ docker-machine create --driver virtualbox default
Creating CA: /Users/yutafujii/.docker/machine/certs/ca.pem
Creating client certificate: /Users/yutafujii/.docker/machine/certs/cert.pem
Running pre-create checks...
Error with pre-create check: "VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path"

Итак, скачиваем VirtualBox. Вы можете установить только cask (вы можете подтвердить это, запустив brew search virtualbox).

Установка VirtualBox через Homebrew

$ brew install virtualbox --cask

⚠️ Возможно, вам не удастся установить VirtualBox из-за такого сообщения об ошибке:

В случае сбоя включите Системные настройки и посмотрите, не заблокирована ли загрузка системного программного обеспечения от разработчика Oracle America, inc.. Если вы видите это сообщение, нажмите кнопку Разрешить и повторите попытку. . (К сожалению, если вам все еще не удается установить, Daniel Meechan поможет вам больше.)

Успешно установлен? Большой!

Создать новую виртуальную машину

Затем давайте создадим машину. Вы можете создать машину с помощью флага docker-machine create (name)with--driver, чтобы указать провайдер, на котором создается машина. (Докер док)

$ docker-machine create --driver virtualbox default
[...]
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default

Запустите docker-machine ls, и вы увидите, что ваш компьютер по умолчанию создан.

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER     ERRORS
default   *        virtualbox   Running   tcp://192.168.xxx.xxx:xxxx           v18.09.5

Еще несколько шагов. Как указано в выходных данных команды docker-machine create, выполните следующую команду, чтобы указать Docker, «на каком компьютере» выполнять команду docker.

$ docker-machine env default

И подключите свою оболочку к новой машине. Здесь я использую zsh (Docker поддерживает bash cmd powershell emacs, fish и SHELL может быть в порядке).

$ eval $(docker-machine env default)

Наконец, давайте проверим, что весь процесс установки прошел правильно!

$ docker run hello-world

Когда вы на этот раз закончите экспериментировать с Docker, не забудьте остановить машину с помощью этой команды. (Вы можете проверить статус docker-machine ls)

$ docker-machine stop default

Что мы сделали?

Все время мы это делали. Мы сделали следующее:

  • установлен Docker, Docker Machine, VirtualBox
  • docker-machine createсоздали новую виртуальную машину Docker (названную "default")
  • docker-machine envпереключил вашу среду на новую виртуальную машину (названную "default")
  • evalиспользуйте докер-клиент (ваш локальный компьютер / терминал) для создания, загрузки и управления контейнерами
  • docker runКлиент Docker (ваш терминал) создал демона Docker
  • вытащил первое изображение "hello-world"
  • Docker deamon создал контейнер, который передал этот вывод клиенту Docker.
  • docker-machine stop выключить виртуальную машину

Команды интерфейса командной строки Docker Machine

active
config
create
env
help
inspect
ip
kill
ls
mount
provision
regenerate-certs
restart
rm
scp
ssh
start
status
stop
upgrade
url

Всем спасибо за чтение! Надеюсь, это вам немного поможет.

до свидания

Юта.

Ресурсы



Создаете веб-приложение или мобильное приложение?

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

Разработчик? Попробуйте Crowdbotics App Builder, чтобы быстро создавать и развертывать приложения с помощью различных популярных платформ.

Заняты или нетехнически? Присоединяйтесь к сотням счастливых команд, создающих программное обеспечение с менеджерами Crowdbotics и опытными разработчиками. Сроки и стоимость с Crowdbotics Управляемая разработка приложений бесплатно.