Docker на виртуальной машине windows

Содержание
  1. Установка Docker в Windows
  2. Что нужно знать перед установкой Docker в Windows?
  3. Установка Docker в Windows 10
  4. Подсистема Docker в Windows Docker Engine on Windows
  5. Установка Docker Install Docker
  6. Настройка Docker с помощью файла конфигурации Configure Docker with a configuration file
  7. Настройка Docker в службе Docker Configure Docker on the Docker service
  8. Распространенные конфигурации Common configuration
  9. Создание сети по умолчанию Default network creation
  10. Задание группы безопасности для Docker Set Docker security group
  11. Конфигурация прокси-сервера Proxy configuration
  12. Удаление Docker How to uninstall Docker
  13. Подготовка системы к удалению Docker Prepare your system for Docker’s removal
  14. Удаление Docker Uninstall Docker
  15. Очистка данных и системных компонентов Docker Clean up Docker data and system components
  16. Перезагрузка системы Reboot your system
  17. Docker и VMWare Workstation на одной Windows машине
  18. Работа встала, нужно срочно чинить
  19. Другой путь
  20. Еще один способ установки и использования Docker в Windows 10
  21. Установка WSL 2
  22. Установка Docker
  23. Запуск контейнеров

Установка Docker в Windows

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 предложит вам включить нужные компоненты и перезагрузить вашу машину.

Примечание: После включения компонента Hyper-V, VirtualBox перестанет работать, при этом все образы ваших виртуальных машин будут сохранены.

Docker для Windows включает в себя следующие компоненты:

Контейнеры и образы, созданные с помощью Docker Desktop для Windows, доступны всем пользователям машины, на которую он установлен, так как все пользователи используют одну и ту же виртуальную машину для сборки и запуска контейнеров.

Установка Docker в Windows 10

Существует два варианта установки Docker для Windows:

Приложение «Docker Toolbox for Windows».

Приложение «Docker for Windows».

Примечание: Обратите внимание, что Docker Toolbox для Windows является устаревшим решением, которым вы можете воспользоваться, если ваш компьютер не удовлетворяет требования, которые нужны для Docker для Windows. Детальнее об установке Docker Toolbox вы можете прочитать здесь.

В этом уроке мы будем устанавливать Docker через приложение «Docker for Windows», так как это решение является наиболее стабильным и надёжным. Итак, сначала нам нужно скачать установщик.

Примечание: Для Docker права администратора нужны для того, чтобы установить сетевые компоненты, создать ссылки на приложения Docker и управлять Hyper-V виртуальными машинами.

Чтобы запустить Docker Desktop, воспользуйтесь поиском в Windows:

Docker будет запущен тогда, когда иконка «кита» появится в системном трее:

Если иконка «кита» скрыта в системном трее, то нажмите на стрелку вверх, чтобы посмотреть все иконки. После установки Docker Desktop, вы также получите всплывающее уведомление о том, что Docker установлен и готов к работе:

Поздравляю! Вы успешно установили Docker Desktop на Windows.

Поделиться в социальных сетях:

Источник

Подсистема Docker в Windows Docker Engine on Windows

Подсистема и клиент Docker не входят в состав Windows, потому их нужно устанавливать и настраивать отдельно. The Docker Engine and client aren’t included with Windows and need to be installed and configured individually. Кроме того, подсистема Docker может принимать множество пользовательских конфигураций. Furthermore, the Docker Engine can accept many custom configurations. Например, можно настроить то, как управляющая программа принимает входящие запросы, сетевые параметры по умолчанию и параметры ведения журнала и отладки. Some examples include configuring how the daemon accepts incoming requests, default networking options, and debug/log settings. В ОС Windows эти конфигурации можно указать в файле конфигурации или с помощью диспетчера служб Windows. On Windows, these configurations can be specified in a configuration file or by using Windows Service control manager. В этом документе объясняется установка и настройка подсистемы Docker; также представлены примеры некоторых часто используемых конфигураций. This document details how to install and configure the Docker Engine, and also provides some examples of commonly used configurations.

Установка Docker Install Docker

Для работы с контейнерами Windows требуется Docker. You need Docker in order to work with Windows Containers. Docker состоит из подсистемы Docker (dockerd.exe) и клиента Docker (docker.exe). Docker consists of the Docker Engine (dockerd.exe), and the Docker client (docker.exe). Самый простой способ установить все необходимые компоненты изложен в кратком руководстве, которое поможет настроить и запустить первый контейнер. The easiest way to get everything installed is in the quickstart guide, which will help you get everything set up and run your first container.

Читайте также:  Windows 10 на любое устройство

Сведения об установке с помощью сценария см. в разделе Использование сценария для установки Docker EE. For scripted installations, see Use a script to install Docker EE.

Прежде чем использовать Docker, необходимо установить образы контейнеров. Before you can use Docker, you’ll need to install the container images. Дополнительные сведения см. в документации по образам контейнеров. For more information, see docs for our container base images.

Настройка Docker с помощью файла конфигурации Configure Docker with a configuration file

Предпочтительным способом настройки подсистемы Docker в Windows является использование файла конфигурации. The preferred method for configuring the Docker Engine on Windows is using a configuration file. Путь к файлу конфигурации — C:\ProgramData\Docker\config\daemon.json. The configuration file can be found at ‘C:\ProgramData\Docker\config\daemon.json’. Если этот файл еще не существует, его можно создать. You can create this file if it doesn’t already exist.

Не все доступные параметры конфигурации Docker применяются к Docker в Windows. Not every available Docker configuration option applies to Docker on Windows. В примере ниже показаны параметры конфигурации, которые применяются. The following example shows the configuration options that do apply. Дополнительные сведения о конфигурации подсистемы Docker см. в статье Docker daemon configuration file (Файл конфигурации управляющей программы Docker). For more information about Docker Engine configuration, see Docker daemon configuration file.

Достаточно только внести необходимые изменения в файл конфигурации. You only need to add the desired configuration changes to the configuration file. Например, в этом случае подсистема Docker настраивается на прием входящих подключений через порт 2375. For example, the following sample configures the Docker Engine to accept incoming connections on port 2375. В других параметрах конфигурации будут использоваться значения по умолчанию. All other configuration options will use default values.

В примере ниже управляющая программа Docker настраивается на прием только защищенных подключений через порт 2376. The following sample configures the Docker daemon to only accept secured connections over port 2376.

Настройка Docker в службе Docker Configure Docker on the Docker service

Распространенные конфигурации Common configuration

В следующих примерах файла конфигурации представлены распространенные конфигурации Docker. The following configuration file examples show common Docker configurations. Их можно объединить в один файл конфигурации. These can be combined into a single configuration file.

Создание сети по умолчанию Default network creation

Чтобы настроить подсистему Docker таким образом, чтобы не была создана сеть NAT по умолчанию, используйте следующую конфигурацию. To configure the Docker Engine so that it doesn’t create a default NAT network, use the following configuration.

Дополнительные сведения см. в статье Управление сетями Docker. For more information, see Manage Docker Networks.

Задание группы безопасности для Docker Set Docker security group

Конфигурация прокси-сервера Proxy configuration

После задания переменной перезапустите службу Docker. Once the variable has been set, restart the Docker service.

Дополнительные сведения см. в разделе Windows Configuration File (Файл конфигурации Windows) на сайте Docker.com. For more information, see Windows Configuration File on Docker.com.

Удаление Docker How to uninstall Docker

В этом разделе описывается, как удалить Docker и выполнить полную очистку компонентов системы Docker в Windows 10 или Windows Server 2016. This section will tell you how to uninstall Docker and perform a full cleanup of Docker system components from your Windows 10 or Windows Server 2016 system.

Все команды в этих инструкциях необходимо выполнять из сеанса PowerShell с повышенными привилегиями. You must run all commands in these instructions from an elevated PowerShell session.

Подготовка системы к удалению Docker Prepare your system for Docker’s removal

Перед удалением Docker убедитесь, что в системе не запущены контейнеры. Before you uninstall Docker, make sure no containers are running on your system.

Выполните следующие командлеты, чтобы найти работающие контейнеры: Run the following cmdlets to check for running containers:

Кроме того, перед удалением Docker рекомендуется удалить все контейнеры, образы контейнеров, сети и тома из системы. It’s also good practice to remove all containers, container images, networks, and volumes from your system before removing Docker. Это можно сделать, выполнив следующий командлет: You can do this by running the following cmdlet:

Удаление Docker Uninstall Docker

Затем необходимо начать собственно удаление Docker. Next, you’ll need to actually uninstall Docker.

Удаление Docker в Windows 10 To uninstall Docker on Windows 10

Читайте также:  Photoshop windows 7 32bit

Удаление Docker в Windows Server 2016 To uninstall Docker on Windows Server 2016:

В сеансе PowerShell с повышенными привилегиями используйте командлеты Uninstall-Package и Uninstall-Module, чтобы удалить модуль Docker и соответствующий ему поставщик Управление пакетами из системы, как показано в следующем примере: From an elevated PowerShell session, use the Uninstall-Package and Uninstall-Module cmdlets to remove the Docker module and its corresponding Package Management Provider from your system, as shown in the following example:

Очистка данных и системных компонентов Docker Clean up Docker data and system components

После удаления Docker необходимо удалить сети Docker по умолчанию, чтобы их конфигурация не оставалась в системе после того, как Docker будет удален. After you uninstall Docker, you’ll need to remove Docker’s default networks so their configuration won’t remain on your system after Docker is gone. Это можно сделать, выполнив следующий командлет: You can do this by running the following cmdlet:

Удалите сети по умолчанию Docker в Windows Server 2016. To remove Docker’s default networks on Windows Server 2016.

Выполните следующий командлет, чтобы удалить программные данные Docker из системы: Run the following cmdlet to remove Docker’s program data from your system:

Можно также удалить необязательные компоненты Windows, связанные с Docker и контейнерами в Windows. You may also want to remove the Windows optional features associated with Docker/containers on Windows.

К ним относится компонент «Контейнеры», который автоматически включается в любом экземпляре Windows 10 или Windows Server 2016 при установке Docker. This includes the «Containers» feature, which is automatically enabled on any Windows 10 or Windows Server 2016 when Docker is installed. Это также может быть компонент «Hyper-V», который автоматически включается в Windows 10 при установке Docker, однако в Windows Server 2016 он включается вручную. It may also include the «Hyper-V» feature, which is automatically enabled on Windows 10 when Docker is installed, but must be explicitly enabled on Windows Server 2016.

Компонент Hyper-V является общим компонентом виртуализации, который обеспечивает гораздо большую функциональность, чем при использовании одних только контейнеров. The Hyper-V feature is a general virtualization feature that enables much more than just containers. Прежде чем отключить Hyper-V, убедитесь, что в системе нет других виртуальных компонентов, которые зависят от Hyper-V. Before disabling the Hyper-V feature, make sure there are no other virtualized components on your system that require Hyper-V.

Удаление компонентов Windows 10 To remove Windows features on Windows 10:

Удаление компонентов Windows Server 2016 To remove Windows features on Windows Server 2016:

В сеансе PowerShell с повышенными привилегиями выполните следующие командлеты, чтобы отключить компоненты Контейнеры и (необязательно) Hyper-V. From an elevated PowerShell session, run the following cmdlets to disable the Containers and (optionally) Hyper-V features from your system:

Перезагрузка системы Reboot your system

Чтобы завершить удаление компонентов и очистить систему, выполните следующий командлет из сеанса PowerShell с повышенными привилегиями для перезагрузки системы: To finish uninstallation and cleanup, run the following cmdlet from an elevated PowerShell session to reboot your system:

Источник

Docker и VMWare Workstation на одной Windows машине

Задача было простой, поставить Docker на свой рабочий ноутбук с Windows, на котором уже и так зоопарк. Поставил Docker Desktop создал контейнеры, всё ок, вот только быстро обнаружил, что VMWare Workstation перестала запускать виртуалки с ошибкой:

Работа встала, нужно срочно чинить

Методом гугления было выяснено, что данная ошибка возникает из-за несовместимости VMWare Workstation и Hyper-V на одной машине. Проблема известная и есть официальное решение VMWare как это починить, со ссылкой на базу знаний Microsoft Manage Windows Defender Credential Guard. Решение заключается в отключении Defender Credential Guard (мне помог пункт 4 раздела Disable Windows Defender Credential Guard):

После перезапуска Windows спросит, действительно ли отключить Defender Credential Guard. Да! Таким образом VMWare Workstation вернется к нормальной работе, и мы окажемся в том же месте, что и до установки докера.

Решения как помирить Hyper-V и VMWare Workstation я так и не нашел, надеюсь в новых версиях они подружатся.

Другой путь

Я уже давно подсел на VMWare Workstation для разных целей, пытался слезть на Hyper-V и VirtualBox, но функционал не удовлетворил моим задачам, так по сей день и сижу. Оказалось есть решение как сдружить VMWare, Docker и VSCode в одной рабочей среде.

Docker Machine — позволяет запускать Docker Engine на виртуальном хосте и подключаться к нему как удаленно, так и локально. И для него есть драйвер совместимости с VMWare Workstation, ссылка на GitHub

Инструкцию по установке особо пересказывать не буду, только список ингридиентов:

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

Читайте также:  3d эффекты для видеоредактора виндовс 10

из Boot2Docker будет создана виртуалка dev внутри которой будет Docker.

Эту виртуалку можно прицепить в графический интерфейс VMWare Workstation, открыв соответствующий vmx файл. Но это не обязательно, ведь VSCode теперь потребуется запускать PowerShell скриптом (у меня почему-то docker-machine и docker-machine-driver-vmwareworkstation оказались именно в папке bin):

Откроется VSCode для работы кодом на локальной машине и докером в виртуалке. Плагин Docker for Visual Studio Code позволяет удобно управлять контейнерами в виртуалке не залезая в консоль.

В процессе создания docker-machine у меня процесс зависал:

И через некоторое время завершился с превышением попыток установить соединение с виртуалкой.

Всё дело в политике к сертификатам. При создании виртуальной машины, у вас появится каталог

\.docker\machine\machines\dev в этом каталоге будут файлы сертификата для подключения по SSH: id_rsa, id_rsa.pub. OpenSSH может отказываться их использовать, так как считает что у них проблемы с правами доступа. Только вот docker-machine вам об этом ничего не скажет, а просто будет переподключаться пока не надоест.

Решение: Как только начнется создание новой виртуальной машины заходим в каталог

\.docker\machine\machines\dev и меняем права на указанные файлы, по одному.

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

Так же могут быть проблемы с преобразованием абсолютных путей из Windows формата в Posix, и с биндингом томов содержащих symbolic link. Но это уже другая история.

Источник

Еще один способ установки и использования 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

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector