настройка docker windows 10
Install Docker Desktop on Windows
Estimated reading time: 9 minutes
Update to the Docker Desktop terms
Welcome to Docker Desktop for Windows. This page contains information about Docker Desktop for Windows system requirements, download URL, instructions to install and update Docker Desktop for Windows.
Download Docker Desktop for Windows
System requirements
Your Windows machine must meet the following requirements to successfully install Docker Desktop.
WSL 2 backend
The following hardware prerequisites are required to successfully run WSL 2 on Windows 10 or Windows 11:
Hyper-V backend and Windows containers
Windows 10 64-bit: Pro 2004 (build 19041) or higher, or Enterprise or Education 1909 (build 18363) or higher.
For Windows 10 and Windows 11 Home, see System requirements for WSL 2 backend.
The following hardware prerequisites are required to successfully run Client Hyper-V on Windows 10:
Docker only supports Docker Desktop on Windows for those versions of Windows 10 that are still within Microsoft’s servicing timeline.
Containers and images created with Docker Desktop are shared between all user accounts on machines where it is installed. This is because all Windows accounts use the same VM to build and run containers. Note that it is not possible to share containers and images between user accounts when using the Docker Desktop WSL 2 backend.
Nested virtualization scenarios, such as running Docker Desktop on a VMWare or Parallels instance might work, but there are no guarantees. For more information, see Running Docker Desktop in nested virtualization scenarios.
About Windows containers
Looking for information on using Windows containers?
Install Docker Desktop on Windows
Double-click Docker Desktop Installer.exe to run the installer.
If you haven’t already downloaded the installer ( Docker Desktop Installer.exe ), you can get it from Docker Hub. It typically downloads to your Downloads folder, or you can run it from the recent downloads bar at the bottom of your web browser.
When prompted, ensure the Enable Hyper-V Windows Features or the Install required Windows components for WSL 2 option is selected on the Configuration page.
Follow the instructions on the installation wizard to authorize the installer and proceed with the install.
When the installation is successful, click Close to complete the installation process.
If your admin account is different to your user account, you must add the user to the docker-users group. Run Computer Management as an administrator and navigate to Local Users and Groups > Groups > docker-users. Right-click to add the user to the group. Log out and log back in for the changes to take effect.
Start Docker Desktop
Docker Desktop does not start automatically after installation. To start Docker Desktop:
Search for Docker, and select Docker Desktop in the search results.
The Docker menu () displays the Docker Subscription Service Agreement window. It includes a change to the terms of use for Docker Desktop.
Here’s a summary of the key changes:
Click the checkbox to indicate that you accept the updated terms and then click Accept to continue. Docker Desktop starts after you accept the terms.
If you do not agree to the updated terms, the Docker Desktop application will close and you can no longer run Docker Desktop on your machine. You can choose to accept the terms at a later date by opening Docker Desktop.
For more information, see Docker Desktop License Agreement. We recommend that you also read the Blog and FAQs to learn how companies using Docker Desktop may be affected.
Quick Start Guide
When the initialization is complete, Docker Desktop launches the Quick Start Guide. This tutorial includes a simple exercise to build an example Docker image, run it as a container, push and save the image to Docker Hub.
To run the Quick Start Guide on demand, right-click the Docker icon in the Notifications area (or System tray) to open the Docker Desktop menu and then select Quick Start Guide.
Congratulations! You are now successfully running Docker Desktop on Windows.
Updates
When an update is available, Docker Desktop displays an icon on the Docker menu to indicate the availability of a newer version. Additionally, the Software Updates section in Preferences (Settings on Windows) also notifies you of any updates available to Docker Desktop. You can choose to download the update right away, or click the Release Notes option to learn what’s included in the updated version.
Starting with Docker Desktop 4.2.0, the option to turn off the automatic check for updates is available for users on all Docker subscriptions, including Docker Personal and Docker Pro. For more information, see Software Updates.
Docker Subscription Service Agreement
Beginning on August 31, 2021, you must agree to the Docker Subscription Service Agreement to continue using Docker Desktop. Read the Blog and the Docker subscription FAQs to learn more about the changes.
Click Download update When you are ready to download the update. This downloads the update in the background. After downloading the update, click Update and restart from the Docker menu. This installs the latest update and restarts Docker Desktop for the changes to take effect.
When Docker Desktop starts, it displays the Docker Subscription Service Agreement window. Read the information presented on the screen to understand how the changes impact you. Click the checkbox to indicate that you accept the updated terms and then click Accept to continue.
If you do not agree to the terms, the Docker Desktop application will close and you can no longer run Docker Desktop on your machine. You can choose to accept the terms at a later date by opening Docker Desktop.
Docker Desktop starts after you accept the terms.
Uninstall Docker Desktop
To uninstall Docker Desktop from your Windows machine:
Uninstalling Docker Desktop destroys Docker containers, images, volumes, and other Docker related data local to the machine, and removes the files generated by the application. Refer to the back up and restore data section to learn how to preserve important data before uninstalling.
Установка Docker на Windows
Обновл. 16 Сен 2021 |
Docker Desktop для Windows — это нативное Windows-приложение, которое предоставляет среду для сборки и запуска контейнеризированных приложений. В его основе лежат нативная Hyper-V виртуализация и сеть, что является наиболее быстрым и стабильным вариантом для работы с Docker в Windows. Docker Desktop для Windows поддерживает как Windows-, так и Linux-контейнеры.
Что нужно знать перед установкой Docker на Windows?
Нам потребуется операционная система Windows 10 версии Корпоративная, Профессиональная или Образовательная. Также должны быть подключены компоненты Hyper-V и Windows Containers. Для работы с этими компонентами система должна выполнять следующие требования:
64-разрядный процессор с поддержкой преобразования адресов второго уровня (сокр. «SLAT» от англ. «Second Level Address Translation»).
Не менее 4 ГБ оперативной памяти.
Поддержка аппаратной виртуализации на уровне BIOS.
Есть два способа проверить, включена ли у вас виртуализация на уровне BIOS.
Способ №1: Посмотреть в «Диспетчер задач» > «Производительность» в поле «Виртуализация» должно быть значение «Включено» :
Наличие технологии Microsoft Hyper-V является обязательным условием для установки Docker в Windows. Инсталлятор Docker для Windows предложит вам включить нужные компоненты и перезагрузить вашу машину.
Примечание: Если у вас на компьютере было установлено бесплатное ПО виртуализации VirtualBox, то после включения компонента Hyper-V VirtualBox перестанет работать, при этом все образы ваших виртуальных машин будут сохранены.
Docker для Windows включает в себя следующие компоненты:
Контейнеры и образы, созданные с помощью Docker Desktop для Windows, доступны всем пользователям машины, на которую он установлен, так как все пользователи используют одну и ту же виртуальную машину для сборки и запуска контейнеров.
Установка Docker на Windows 10
Существует два варианта установки Docker на Windows:
Приложение «Docker Toolbox for Windows».
Приложение «Docker for Windows».
Примечание: Обратите внимание, что «Docker Toolbox for Windows» является устаревшим решением, которым вы можете воспользоваться, если ваш компьютер не удовлетворяет требованиям установки «Docker for Windows». Более детально об установке Docker Toolbox вы можете прочитать здесь.
На этом уроке мы установим Docker через приложение «Docker for Windows», так как это решение является наиболее стабильным и надежным. Итак, сначала нам нужно скачать установщик.
Примечание: Приложению Docker права администратора нужны для того, чтобы установить сетевые компоненты, создать ссылки на само приложение и дать возможность Hyper-V управлять виртуальными машинами.
Чтобы запустить Docker Desktop, воспользуйтесь поиском в Windows:
Индикатором запуска Docker является иконка «кита», появившаяся в системном трее:
Если иконка «кита» скрыта в системном трее, то нажмите на стрелочку вверх, чтобы посмотреть все иконки. После установки Docker Desktop вы также получите всплывающее уведомление о том, что Docker установлен и готов к работе:
Поздравляю! Вы успешно установили Docker Desktop на Windows.
Поделиться в социальных сетях:
Начало работы. Подготовка Windows для контейнеров
Из этого руководства вы узнаете, как выполнить следующие задачи:
Предварительные требования
Windows Server
Для запуска контейнеров на Windows Server вам понадобится физический сервер или виртуальная машина под управлением Windows Server 2022, Windows Server (Semi-Annual Channel), Windows Server 2019 или Windows Server 2016.
Windows 10
Для запуска контейнеров в Windows 10 необходимо следующее:
Начиная с Windows 10 с обновлением за октябрь 2018 г., корпорация Майкрософт не запрещает пользователям запускать контейнер Windows в режиме изоляции процессов в Windows 10 Корпоративная или Профессиональная для разработки и тестирования. Дополнительные сведения см. в разделе вопросов и ответов.
Контейнеры Windows Server по умолчанию используют изоляцию Hyper-V в Windows 10, чтобы разработчики получили ту же версию ядра и ту же конфигурацию, что и в рабочей среде. Дополнительные сведения об изоляции Hyper-V см. в статье Режимы изоляции.
Установка Docker
В конце сентября 2022 г. корпорация Майкрософт объявила об обновлении поддержки среды выполнения контейнеров Windows, чтобы уведомить клиентов о том, что мы больше не будем производить сборки Docker EE для API DockerMsftProvider. Клиентам, которые хотят установить среду выполнения контейнера в экземпляре Windows Server, рекомендуется перейти на containerd, Moby или Mirantis Container Runtime. К сентябрю 2022 года эти документы по установке будут обновлены в соответствии с процессом установки, рекомендуемым корпорацией Майкрософт.
Первым шагом станет установка Docker. Это нужно для работы с контейнерами Windows. Docker предоставляет стандартную среду выполнения для контейнеров, а также популярный API и интерфейс командной строки (CLI).
Дополнительные сведения о конфигурации см. в статье Подсистема Docker в Windows.
Чтобы установить Docker в Windows Server, можно использовать модуль PowerShell поставщика OneGet, который опубликован корпорацией Майкрософт, под именем DockerMicrosoftProvider. Этот поставщик включает поддержку контейнеров в Windows, а также устанавливает подсистему и клиент Docker. Вот как это сделать.
Откройте сеанс PowerShell с повышенными привилегиями и установите поставщик Docker-Microsoft PackageManagement из коллекции PowerShell.
Если будет предложено установить поставщик NuGet, введите Y и установите его.
С помощью модуля PackageManagement PowerShell установите последнюю версию Docker.
После установки перезагрузите компьютер.
Если позже вам потребуется обновить Docker, выполните следующие действия:
Windows Admin Center;
Вы можете использовать Windows Admin Center для корректной настройки компьютера Windows Server в качестве узла контейнера. Чтобы начать работу, убедитесь, что в вашем экземпляре Windows Admin Center установлена последняя версия расширения «Контейнеры». Дополнительные сведения об установке и настройке расширений см. в документации по Windows Admin Center. Установив расширение «Контейнеры», выберите компьютер Windows Server, который нужно настроить, и выберите вариант «Контейнеры»:
Нажмите кнопку Установить. Windows Admin Center запустит настройку Windows Server и Docker в фоновом режиме. После завершения процесса можно обновить страницу и просмотреть другие функции расширения «Контейнеры».
Вы можете установить Docker в Windows 10 Профессиональная и Корпоративная, выполнив описанные ниже действия.
Загрузите и установите Docker Desktop и создайте учетную запись Docker, если у вас ее еще нет. Вы можете создать бесплатную учетную запись Docker для частных пользователей или пользователей малого бизнеса, однако для крупных предприятий взимается ежемесячная плата. Дополнительные сведения см. в документации по Docker.
Во время установки выберите контейнеры Windows в качестве типа контейнеров по умолчанию. Чтобы переключиться после установки, можно использовать элемент Docker в области уведомлений Windows (как показано ниже) либо следующую команду в командной строке PowerShell:
Дальнейшие действия
Теперь, когда ваша среда полностью настроена, перейдите по приведенной ниже ссылке, чтобы узнать, как запустить контейнер.
Еще один способ установки и использования Docker в Windows 10
Чтобы все описанные ниже действия были успешно выполнены, потребуется 64-разрядная система с версией не меньше 2004 и сборкой не меньше 18362. Проверим версию и номер сборки, выполнив в PowerShell команду winver
Если версия ниже требуемой, то необходимо произвести обновление и только после этого идти дальше
Установка WSL 2
Сначала включим компонент Windows Subsystem for Linux (WSL). Для этого запустим PowerShell с правами администратора и выполним первую команду
Выполним следующую команду
Для целей этой статьи это необязательно, но установим дистрибутив Linux через Microsoft Store, например, Ubuntu 20.04 LTS
При первом запуске установленного дистрибутива введем имя пользователя и пароль
Файловая система запущенного дистрибутива Linux будет смонтирована по этому пути \\wsl$
Установка Docker
Скачаем Docker Desktop для Windows и установим, следуя простым инструкциям
После установки запустим приложение Docker Desktop и установим интеграцию Docker с дистрибутивом Linux (WSL 2)
Теперь отправлять команды Docker можно как через PowerShell, так и через Bash. Выполним команду docker version
Запуск контейнеров
Чтобы убедиться, что Docker правильно установлен и работает должным образом, запустим простой контейнер busybox, который всего лишь выведет в консоль переданное сообщение и завершит свое выполнение
Хорошо. Давайте сделаем что-то более интересное. Например, запустим контейнер rabbitmq
Разберем выполненную команду:
Теперь мы можем извне контейнера взаимодействовать с сервером RabbitMQ через порт 5672 и получить доступ к управлению из браузера через порт 8080
Для нашего примера нам понадобится отдельная сеть, т.к. мы запустим целых два контейнера, которые будут взаимодействовать между собой. На самом деле все запускаемые контейнеры по умолчанию попадают в уже существующую сеть с именем bridge, но т.к. в своей сети мы без лишних проблем сможешь обращаться из одного контейнера к другому прямо по имени, создадим сеть с названием mynet типа bridge
Далее с помощью Visual Studio 2019 создадим новый проект ASP.NET Core Web API, который будет использован для демонстрации отладки
Добавим для взаимодействия с Redis пакет StackExchange.Redis через Package Manager Console
Мы не будем акцентироваться на правильности и красоте дизайна, а быстро создадим рабочий пример
Добавим в проект файл RandomWeatherService.cs, где будет находится служба для выдачи не очень точного прогноза
Добавим файл RedisRepository.cs, где будет находится служба кеширования сформированных прогнозов
Зарегистрируем созданные службы в классе Startup
И наконец, изменим созданный автоматически единственный контроллер WeatherForecastController следующим образом
Помимо прочего в проект автоматически был добавлен файл Dockerfile с инструкциями для Docker. Оставим его без изменений
В результате получим следующую структуру проекта
Если по какой-то невероятной причине Вам понадобятся исходники, то они здесь
Запустим наше приложение в контейнере под отладкой
После того как контейнер будет запущен, также подключим его к сети mynet
После убедимся, что все необходимые контейнеры находятся в одной сети
Далее установим Breakpoint в единственном методе контроллера и пошлем запрос через Postman, или через любой браузер
Кстати, используемый порт в Вашем случае может отличаться и его можно посмотреть в окне Containers
Результат в окне Postman
Дополнительно убедимся, что значение зафиксировано в redis, подключившись с помощью консоли redis-cli
Docker под Windows для разработки, разбор подводных камней
Данная публикация является разбором особенностей контейнерной виртуализации Docker под системой Windows.
Она не претендует на роль исчерпывающей и по мере необходимости будет обновляться и дополняться.
За практическим руководством с нуля советую обратиться к этой публикации.
Содержание
Предварительные настройки
Контейнерная виртуализация или виртуализация на уровне операционной системы Docker нативно работает только на дистрибутивах Linux и FreeBSD (экспериментально).
На Windows вам понадобится гостевая Linux система либо специальная минималистичная виртуальная машина с ядром Linux от разработчиков Docker, которая и ставится из коробки.
Само собой разумеется, что вы включили виртуализацию у себя в BIOS/UEFI
Пункт настройки может называться по-разному: VT-x, VT-d, Intel VT, AMD-V, Virtualization Technology.
Еще одним минимальным системным требованием будет разрядность системы x64 и версия не ниже Windows 7 Pro.
Выбор между Docker Toolbox on Windows или Docker for Windows
Сборка включается в себя сам docker, утилиту docker-compose, утилиту для работы с виртуальной машиной docker-machine и клиент Kitematic.
Используется виртуальная машина (по умолчанию на VirtualBox) с минималистичным Linux окружением.
Позже для новых операционных систем выпустили Docker for Windows и Docker for Mac, которая на текущий момент является актуальной версией и продолжает развиваться.
Выбор между версиями не сложный:
— Если у вас Windows 10 x64 Pro, Enterprise или Education то включаем службу Hyper-V и ставим Docker for Windows.
Заметьте, что после включения службы Hyper-V пропадет возможность запускать и создавать x64 виртуальные машины на VirtualBox.
— Если же у вас другая версия Windows(7 Pro, 8, 8.1, 10 Home) то ставим VirtualBox и Docker Toolbox on Windows.
Несмотря на то, что Docker Toolbox разработчиками признан устаревшим работа с ним слабо отличается от Docker for Windows.
Вместе с установкой Docker Toolbox будет создана виртуальная машина.
В самом VirtualBox можно будет добавить оперативной памяти и ядер процессора на ваше усмотрение.
Windows контейнеры и Linux контейнеры
Docker for Windows предоставляет возможность переключать контейнеризацию между Linux и Windows версией.
В режиме Windows контейнеризации вы можете запускать только Windows приложения.
Замечу, что на май 2018 года в официальном Docker Hub существует всего 13 образов для Windows.
После включения Windows контейнеризации не забудьте добавить внешнюю сеть.
В конфигурационном файле docker-compose.yml это выглядит так:
Особенности монтирования папок
На примонтированных volume-ах не кидаются события файловой системы, поэтому inotify-tools не работает.
Спасибо пользователю eee
Если вы разрабатываете свой проект и пользуетесь docker-compose вне домашней папки то вам нужно будет проделать некоторые манипуляции.
Используя Docker for Windows для монтирования нового диска у вашего локального пользователя обязательно должен стоять пароль, который будет использоваться для доступа к shared папки.
Особенность заключается в том, что монтируемые внутрь контейнера диск будет монтироваться как от удаленной машины //10.0.75.1/DISK_DRIVE по протоколу SMB.
Для Docker Toolbox диски монтируются в самом VirtualBox на вкладке «Общие папки»
Пример для диска «D»:
Права доступа к монтируемым файлам и папкам
Как бы вам не хотелось, но для всех примонтированных из хост-машины файлов и папок будут стоять права 755 (rwx r-x r-x) и поменять их вы не сможете.
Остро встает вопрос при монтировании внутрь файла закрытого SSH ключа, права на который должны быть только у владельца(например 600).
В данном случае либо генерируют ключ при создании образа, либо прокидывают сокет ssh-agent с хост-машины.
Монтирование с хост-машины или volume
Монтирование внутрь контейнера происходит с использованием сети и протокола SMB, следовательно, внутри контейнера диск «D:\» будет примонтирован из источника //10.0.75.1/D
Использование volume внутри контейнера отображается как монтирование локального диска /dev/sda1, что влияет на скорость работы.
Простым тестом копирование файла на обычном HDD скорость работы получилась следующая:
Такая разница в скорости скорее всего связана с тем, что в volume данные сбрасываются на диск постепенно, задействуя кеш в ОЗУ.
Особенности разметки диска GPT и MBR
Данный пункт не является истинной так как опровергающей или подтверждающей информации в интернете найти не смог.
Если на хост-машине таблица разделов MBR, то контейнер с MySQL/MariaDB может упасть с ошибкой:
По умолчанию в базе данных включеён параметр innodb_use_native_aio, отвечающий за асинхронный ввод/вывод и его надо будет выключить.
Данная проблема также встречается на некоторых версиях MacOS.
Docker Toobox to Windows
Главное правило: начинать работу с запуска ярлыка на рабочем столе «Docker Quickstart Terminal», это решает 80% проблем.
— Бывает возникают проблемы с отсутствия переменных окружения, решается командой:
— Если все же возникают проблемы из разряда «docker: error during connect», необходимо выполнить:
Название Docker Machine по умолчанию default.
Docker Swarm
Ни в Docker for Mac, ни в Docker for Windows — нет возможности использовать запущенные демоны в качестве клиентов кластера (swarm members).
Спасибо пользователю stychos
Проблемы с кодировкой
Используя Docker Toolbox(на Docker for Windows не удалось воспроизвести) нашлась проблема с тем, что русские комментарии в docker-compose.yml файле приводили к ошибке:
Полезные ссылки
Заключение
Особенности работы с Docker контейнеризацией на системе Windows не отличается от работы на Linux за исключение разобранных выше.
В статье я умышленно не упомянул заметно низкую скорость работы контейнеров и overhead используя систему Windows как само собой разумеющееся.
Буду рад услышать ваши отзывы. Не стесняйтесь предлагать улучшения или указывать на мои ошибки.