Все статьи «Уроки Docker на русском»
Чтобы скачать Docker Desktop для Mac, перейдите в Docker Hub.
Если вы уже запускали Docker на своем компьютере, сначала прочитайте инструкцию Docker Desktop for Mac vs. Docker Toolbox, чтобы понять влияние установленного Docker Toolbox на настройку среды для Docker Desktop под Mac и как эти два продукта могут сосуществовать.
Если виртуализация включена и доступна на вашем Mac, вы увидите следующее.
$ sysctl kern.hv_support
kern.hv_support: 1Если виртуализация не поддерживается или отключена.
$ sysctl kern.hv_support
kern.hv_support: 0Примечание. Если ваша система не удовлетворяет этим требованиям, вы можете установить Docker Toolbox, который использует Oracle VirtualBox вместо HyperKit.
1. Дважды щелкните, Docker.dmg чтобы открыть программу установки, затем перетащите кита Moby в папку «Приложения».

2. Дважды щелкните Docker.app в папке «Приложения», чтобы запустить Docker.
Вам будет предложено авторизоваться в Docker.app с помощью системного пароля после запуска. Привилегированный доступ необходим для установки сетевых компонентов и ссылок на приложения Docker.
Кит в верхней строке состояния указывает на то, что Docker запущен и доступен из терминала.

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

3. Нажмите на кита, чтобы получить настройки и другие параметры.
4. Выберите About Docker, чтобы убедиться, что у вас последняя версия.
Поздравляем! Теперь вы готовы к работаете с Docker Desktop и можно идти далее.
Убедитесь, что ваши версии docker, docker-compose и docker-machine обновлены и совместимы с Docker.app. Ваш вывод может отличаться, если вы устанавливали другую версию Docker Desktop.
$ docker --version
Docker version 19.03, build c97c6d6
$ docker-compose --version
docker-compose version 1.24.1, build 8dd22a9
$ docker-machine --version
docker-machine version 0.16.0, build 9ba6da91. Откройте терминал командной строки и проверьте, работает ли Docker, запустив простой образ, hello-world
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...2. Запустите веб-сервер в контейнере докер. Как и на приведенном выше примере «Привет, мир», если изображение не найдено локально, Docker извлечет его из Docker Hub.
$ docker run --detach --publish=80:80 --name=webserver nginx3. В веб-браузере перейдите по адресу localhost/, чтобы просмотреть домашнюю страницу nginx. Поскольку мы указали порт HTTP по умолчанию, нет необходимости добавлять :80 в конце URL.

Ранние бета-версии использовали docker в качестве имени хоста для URL. Теперь порты отображаются на частных IP-адресах виртуальной машины и перенаправляются на localhost.
4. Теперь можно просмотреть сведения о контейнере во время работы веб-сервера (с помощью docker container ls или docker ps).
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
56f433965490 nginx "nginx -g 'daemon off" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, 443/tcp webserver5. Далее можно остановить или удалить контейнеры и образы с помощью следующих команд. Используйте флаг «all» (--all или -a) для просмотра остановленных контейнеров.
$ docker container ls
$ docker container stop webserver
$ docker container ls -a
$ docker container rm webserver
$ docker image ls
$ docker image rm nginxНажмите на кита в строке меню → Настройки (Preferences) и настройте параметры описанные ниже.


Общие настройки:
Выберите, какие локальные каталоги вы хотите использовать в своих контейнерах. Общий доступ к файлам необходим для монтирования томов, если проект находится за пределами каталога /Users. В этом случае предоставьте общий доступ к диску, на котором находится Dockerfile и том. В противном случае вы получите file not found или cannot start service errors at runtime.

Настройки общего доступа к файлам:
Есть несколько ограничений на каталоги, которые могут быть общими:
Для получения дополнительной информации смотри подробнее.
На вкладке «Дополнительно» вы можете ограничить ресурсы, доступные Docker.

Расширенные настройки:
Можно указать путь к папке, где хранятся контейнеры и образы.
Вы также можете переместить расположение образов. Если вы попытаетесь переместить образ диска в место, в котором он уже есть, вы получите запрос, хотите ли вы использовать существующий образ или заменить его.

Docker для MacOS обнаруживает настройки прокси HTTP/HTTPS в macOS и автоматически передает их в Docker и ваши контейнеры. Например, если вы установили настройки прокси на proxy.example.com, Docker использует этот прокси при вытягивании контейнеров.


Когда вы запускаете контейнер, ваши настройки прокси передадутся в контейнеры. Например.
$ docker run -it alpine env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b7edf988b2b5
TERM=xterm
HOME=/root
HTTP_PROXY=http://proxy.example.com:3128
http_proxy=http://proxy.example.com:3128
no_proxy=*.local, 169.254/16Из приведенных выше результатов видно, что установлены переменные среды HTTP_PROXY, http_proxy и no_proxy. Когда ваша конфигурация прокси изменится, Docker автоматически перезагрузится, чтобы использовать новые настройки.
В демоне Docker можно настроить параметры, определяющие работу ваших контейнеров.
Выберите Basic, чтобы настроить демон с интерактивными настройками, или выберите Advanced, чтобы напрямую отредактировать JSON.

В версиях Docker для macOS Stable и Edge на Docker Engine включены экспериментальные функции, как описано в разделе Экспериментальные функции Docker. Если вы снимите флажок в экспериментальном режиме, Docker Desktop будет использовать текущий релиз Docker Engine.
Не включайте экспериментальные функции в продакшене
Экспериментальные функции не подходят для продакшена или рабочих нагрузок. Они предназначены для экспериментов с песочницей и новых идей. Некоторые экспериментальные функции могут быть включены в будущие стабильные версии, но другие могут быть изменены или удалены из последующих выпусков Edge и никогда не войдут в стабильные версии.
Вы можете увидеть, работаете ли вы в экспериментальном режиме в командной строке. Если Experimental имеет значение true, то Docker работает в экспериментальном режиме, как показано ниже. (Если false, экспериментальный режим отключен.)
$ docker version -f {{.Server.Experimental}}
trueВы можете настроить собственный и небезопасный репозиторий для хранения ваших общедоступных или закрытых образов (вместо использования Docker Hub или Docker Trusted Registry). Добавьте URL-адреса для ваших незащищенных репозиториев и их зеркал, на которых будут размещаться ваши образы.
Смотрите также:
Перейдите на вкладку «Дополнительно (Advanced)», чтобы настроить демон в файле JSON. Полный список параметров см. В справочнике по командной строке Docker Engine.
Нажмите «Применить и перезагрузить (Apply & Restart)», чтобы сохранить настройки и перезагрузить Docker.

В Docker для Mac 17.12 Edge (mac45) и выше и 18.06 Stable (mac70) и выше включен автономный сервер Kubernetes, который работает на вашем Mac, так что вы можете тестировать развертывание рабочих проектов Docker на Kubernetes.
Клиентская команда Kubernetes, kubectl, включена и настроена для подключения к локальному серверу Kubernetes. Если kubectl уже установлен и указывает на какую-то другую среду, такую как minikube или кластер GKE, обязательно измените контекст, чтобы kubectl указывал на docker-for-desktop.
$ kubectl config get-contexts
$ kubectl config use-context docker-for-desktopЕсли вы установили kubectl с помощью Homebrew или каким-либо другим способом и столкнулись с конфликтами, удалите /usr/local/bin/kubectl.

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

Состояние Kubernetes отображается в меню Docker.

Чтобы в любой момент отключить поддержку Kubernetes, снимите флажок «Включить Kubernetes (Enable Kubernetes)». Контейнеры Kubernetes остановятся и удалятся. Команда /usr/local/bin/kubectl также будет удалена.
Дополнительные сведения об использовании интеграции Kubernetes с Docker Desktop см. В разделе Развертывание в Kubernetes.
Выберите в меню изображение кита -> Настройки (Preferences), затем нажмите Сброс (Reset), чтобы сбросить заводские настройки в состояние по умолчанию и перезапустите демон Docker.

Сброс настроек:
Чтобы удалить Docker из терминала, запустите: <DockerforMacPath> --uninstall. Если вы устанавливали в каталог по умолчанию, эта команда обеспечит полное удаление:
$ /Applications/Docker.app/Contents/MacOS/Docker --uninstall
Docker is running, exiting...
Docker uninstalled successfully. You can move the Docker application to the trash.Вы можете использовать удаление из командной строки, если, например, вы обнаружите, что приложение не работает, и его нельзя удалить из меню.
Вы можете добавить доверенные центры сертификации (ЦС) и клиентские сертификаты (используемые для проверки подлинности в репозиториях) к своему демону Docker.
Поддерживаются все доверенные центры сертификации. Docker Desktop создает пакет сертификатов всех доверенных пользователей на основе цепочки ключей Mac и добавляет его в доверенные сертификаты Moby. Таким образом, если корпоративный SSL-сертификат является доверенным для пользователя на хосте, он доверяется и Docker Desktop.
Чтобы вручную добавить пользовательский самоподписанный сертификат, начните с добавления сертификата в цепочку ключей macOS. Вот пример.
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crtИли, если вы предпочитаете добавить сертификат только в свою собственную локальную цепочку ключей (а не для всех пользователей), выполните следующую команду:
$ security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ca.crtСмотрите также, Каталог структур для сертификатов.
Примечание. Чтобы изменения вступили в силу, необходимо перезапустить Docker Desktop после внесения любых изменений в цепочку ключей или в каталог ~/.docker/certs.d.
Полное объяснение того, как это сделать, см. В блоге «Добавление самоподписанных сертификатов реестра в Docker & Docker для Mac».
Вы можете поместить свои клиентские сертификаты в ~/.docker/certs.d/<MyRegistry>:<Port>/client.cert и ~/.docker/certs.d/<MyRegistry>:<Port>/client.key.
Когда приложение Docker запускается, оно копирует папку ~/.docker/certs.d на вашем Mac в каталог /etc/docker/certs.d.
Вам нужно перезапустить Docker после внесения любых изменений в цепочку для ключей или в каталог ~/.docker/certs.d, чтобы изменения вступили в силу.
Если у вас есть такая структура каталогов, вам не нужно вручную добавлять сертификат в вашу учетную запись Mac OS:
/Users/<user>/.docker/certs.d/
└── <MyRegistry>:<Port>
├── ca.crt
├── client.cert
└── client.keyСледующая структура иллюстрирует и объясняет конфигурацию с пользовательскими сертификатами:
/etc/docker/certs.d/ <-- Certificate directory
└── localhost:5000 <-- Hostname:port
├── client.cert <-- Client certificate
├── client.key <-- Client key
└── ca.crt <-- Certificate authority that signed
the registry certificateВы также можете иметь такую структуру каталогов, если сертификат находится в вашей цепочке для ключей.
/Users/<user>/.docker/certs.d/
└── <MyRegistry>:<Port>
├── client.cert
└── client.keyЧтобы узнать больше о том, как установить корневой сертификат ЦС для реестра и как настроить клиентский сертификат TLS для проверки, см. Раздел Проверка клиентского репозитория с помощью сертификатов.
Docker Desktop поставляется со скриптами, позволяющими выполнять команды docker, docker-machine и docker-compose. Скрипты дополнений можно найти внутри Docker.app, в каталоге Contents/Resources/etc/, и их можно установить как в Bash, так и в Zsh.
Bash имеет встроенную поддержку дополнения. Чтобы активировать дополнения для команд Docker, эти файлы необходимо скопировать или создать ссылку на ваш каталог bash_completion.d/. Например, если вы установили bash через Homebrew:
etc=/Applications/Docker.app/Contents/Resources/etc
ln -s $etc/docker.bash-completion $(brew --prefix)/etc/bash_completion.d/docker
ln -s $etc/docker-machine.bash-completion $(brew --prefix)/etc/bash_completion.d/docker-machine
ln -s $etc/docker-compose.bash-completion $(brew --prefix)/etc/bash_completion.d/docker-composeДобавьте следующее в ваш ~/.bash_profile:
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completionили
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fiВ Zsh система дополнений так же существует. Чтобы активировать дополнения для команд Docker, эти файлы необходимо скопировать или вставить в свой каталог Zsh site-functions/. Например, если вы установили Zsh через Homebrew:
etc=/Applications/Docker.app/Contents/Resources/etc
ln -s $etc/docker.zsh-completion /usr/local/share/zsh/site-functions/_docker
ln -s $etc/docker-machine.zsh-completion /usr/local/share/zsh/site-functions/_docker-machine
ln -s $etc/docker-compose.zsh-completion /usr/local/share/zsh/site-functions/_docker-composeВы можете получить доступ к своей учетной записи Docker ID из Docker для Mac.

В меню Docker войдите в Docker Hub с помощью идентификатора Docker или создайте его.

Затем с помощью меню Docker Desktop для Mac создайте, просмотрите или перейдите непосредственно к своим облачным ресурсам.
Ознакомьтесь с этими темами Docker Hub, чтобы узнать больше:
Другие статьи по Docker можно посмотреть тут.