- Устранение неполадок при разработке с Docker в Visual Studio Troubleshoot Visual Studio development with Docker
- Совместное использование тома не включено. Volume sharing is not enabled. Включите совместное использование тома в параметрах Docker CE для Windows (только для контейнеров Linux) Enable volume sharing in the Docker CE for Windows settings (Linux containers only)
- Невозможно начать отладку Unable to start debugging
- Ошибки, характерные для сетей при отладке приложения Errors specific to networking when debugging your application
- Отказ в подключении Mounts denied
- Группа пользователей Docker Docker users group
- Недостаточно места на диске Low disk space
- Несоответствие типов контейнеров Container type mismatch
- Репозиторий GitHub Microsoft/DockerTools Microsoft/DockerTools GitHub repo
- Установить Docker на Windows 10 WSL2
- Установка WSL2 на Windows 10
- Установка Docker на Windows 10
- Подсистема Docker в Windows Docker Engine on Windows
- Установка Docker Install Docker
- Настройка Docker с помощью файла конфигурации Configure Docker with a configuration file
- Настройка Docker в службе Docker Configure Docker on the Docker service
- Распространенные конфигурации Common configuration
- Создание сети по умолчанию Default network creation
- Задание группы безопасности для Docker Set Docker security group
- Конфигурация прокси-сервера Proxy configuration
- Удаление Docker How to uninstall Docker
- Подготовка системы к удалению Docker Prepare your system for Docker’s removal
- Удаление Docker Uninstall Docker
- Очистка данных и системных компонентов Docker Clean up Docker data and system components
- Перезагрузка системы Reboot your system
Устранение неполадок при разработке с Docker в Visual Studio Troubleshoot Visual Studio development with Docker
Используя средства Visual Studio для работы с контейнерами, вы можете столкнуться с некоторыми проблемами при создании или отладке приложения. When you’re working with Visual Studio Container Tools, you may encounter issues while building or debugging your application. Далее приведены некоторые распространенные действия по устранению неполадок. Below are some common troubleshooting steps.
Совместное использование тома не включено. Volume sharing is not enabled. Включите совместное использование тома в параметрах Docker CE для Windows (только для контейнеров Linux) Enable volume sharing in the Docker CE for Windows settings (Linux containers only)
Управление общим доступом к файлам необходимо только при использовании Hyper-V с Docker. File sharing only needs to be managed if you are using Hyper-V with Docker. Если используется WSL 2, приведенные ниже действия можно опустить, а параметр общего доступа к файлам не будет отображатся. If you are using WSL 2, the following steps are not necessary and the file sharing option will not be visible. Для разрешения этой проблемы: To resolve this issue:
Щелкните правой кнопкой мыши Docker for Windows (Docker для Windows) в области уведомлений, а затем выберите Параметры. Right-click Docker for Windows in the notification area, and then select Settings.
Выберите Ресурсы > Общий доступ к файлам и предоставьте общий доступ к нужной папке. Select Resources > File Sharing and share the folder that needs to be accessed. Вы также можете предоставить доступ ко всему системному диску, однако мы не рекомендуем делать это. Sharing your entire system drive is possible but not recommended.
В версиях позднее Visual Studio 2017 15.6 выдается предупреждение, если Общие диски не настроены. Visual Studio versions later than Visual Studio 2017 version 15.6 will prompt when Shared Drives aren’t configured.
Невозможно начать отладку Unable to start debugging
Одна из причин может быть связана с наличием устаревших компонентов отладки в папке профиля пользователя. One reason could be related to having stale debugging components in your user profile folder. Чтобы последние компоненты отладки скачались при следующем сеансе отладки, выполните следующие команды для удаления папок: Execute the following commands to remove these folders so that the latest debugging components are downloaded on the next debug session.
- del %userprofile%\vsdbg; del %userprofile%\vsdbg
- del %userprofile%\onecoremsvsmon. del %userprofile%\onecoremsvsmon
Ошибки, характерные для сетей при отладке приложения Errors specific to networking when debugging your application
Попробуйте выполнить сценарий, который можно скачать из репозитория GitHub для очистки сетей узлов контейнера, который обновит связанные с сетью компоненты на вашем хост-компьютере. Try executing the script downloadable from Cleanup Container Host Networking, which will refresh the network-related components on your host machine.
Отказ в подключении Mounts denied
При использовании Docker для macOS может появиться ошибка со ссылкой на папку /usr/local/share/dotnet/sdk/NuGetFallbackFolder. When using Docker for macOS, you might encounter an error referencing the folder /usr/local/share/dotnet/sdk/NuGetFallbackFolder. Добавьте папку на вкладку общего доступа к файлам в Docker. Add the folder to the File Sharing tab in Docker.
Группа пользователей Docker Docker users group
При работе с контейнерами в Visual Studio может возникнуть следующая ошибка. You might encounter the following error in Visual Studio when working with containers:
Для работы с контейнерами Docker требуются разрешения, предоставляемые участникам группы docker-users. You must be a member of the ‘docker-users’ group in order to have permissions to work with Docker containers. Чтобы добавить себя в эту группу в Windows 10, выполните указанные ниже действия. To add yourself to the group in Windows 10, follow these steps:
- В меню «Пуск» откройте Управление компьютером. From the Start menu, open Computer Management.
- Разверните узел Локальные пользователи и группы и выберите узел Группы. Expand Local Users and Groups, and choose Groups.
- Найдите группу docker-users, щелкните ее правой кнопкой мыши и выберите пункт Добавить в группу. Find the docker-users group, right-click and choose Add to group.
- Добавьте свою учетную запись пользователя или несколько учетных записей. Add your user account or accounts.
- Выйдите из системы и войдите снова, чтобы изменения вступили в силу. Sign out and sign back in again for these changes to take effect.
Добавлять пользователей в группы можно также с помощью команды net localgroup в командной строке администратора. You can also use the net localgroup command at the Administrator command prompt to add users to specific groups.
В PowerShell используйте командлет Add-LocalGroupMember. In PowerShell, use the Add-LocalGroupMember function.
Недостаточно места на диске Low disk space
По умолчанию Docker хранит образы в папке %ProgramData%/Docker/ , которая обычно находится на системном диске — *C:\ProgramData\Docker*. By default, Docker stores images in the %ProgramData%/Docker/ folder, which is typically on the system drive, *C:\ProgramData\Docker*. Чтобы образы не занимали место на системном диске, можно изменить расположение папки образов. To prevent images from taking up valuable space on the system drive, you can change the image folder location. Для этого сделайте следующее: To do so:
- Щелкните правой кнопкой мыши значок Docker на панели задач и выберите Параметры. Right click on the Docker icon on the task bar and select Settings.
- Выберите Docker Engine (Обработчик Docker). Select Docker Engine.
- На панели редактирования добавьте параметр свойства graph , указывающий требуемое расположение для образов Docker: In the editing pane, add the graph property setting with the value of your desired location for Docker images:
Нажмите Применить и перезагрузить. Click Apply & Restart. Эти действия изменяют файл конфигурации: %ProgramData%\docker\config\daemon.json. These steps modify the configuration file at %ProgramData%\docker\config\daemon.json. Ранее созданные образы не перемещаются. Previously built images are not moved.
Несоответствие типов контейнеров Container type mismatch
При добавлении в проект поддержки Docker выберите контейнер Windows или Linux. When adding Docker support to a project, you choose either a Windows or a Linux container. Если узел сервера Docker не настроен на запуск того же типа контейнера, что и целевой объект проекта, то, скорее всего, появится сообщение об ошибке, аналогичное приведенному ниже: If the Docker Server host is not configured to run the same container type as the project target, you will likely see an error similar to the one below:
Для разрешения этой проблемы: To resolve this issue:
- В области уведомлений щелкните правой кнопкой мыши значок Docker для Windows и выберите Switch to Windows containers. (Переключиться на контейнеры Windows. ) или Switch to Linux containers. (Переключиться на контейнеры Linux. ). Right-click the Docker for Windows icon in the System Tray and choose Switch to Windows containers. or Switch to Linux containers. .
Репозиторий GitHub Microsoft/DockerTools Microsoft/DockerTools GitHub repo
При возникновении других проблем дополнительные сведения см. в репозитории Microsoft/DockerTools. For any other issues you encounter, see Microsoft/DockerTools issues.
Установить Docker на Windows 10 WSL2
В этой заметке я расскажу как поставить Докер на Windows 10, но сначала я опишу установку Windows Subsystem for Linux. Работу с самим Докером я описывать не буду, сделаю это позже.
Установка WSL2 на Windows 10
Установка элементарная, главное проверьте чтобы ваш компьютер и Windows 10 отвечали минимальным требованиям.
Подробный процесс установки описан на сайте Microsoft https://docs.microsoft.com/ru-ru/windows/wsl/install-win10 там же указаны минимальные требования.
Если коротко, то установка WSL2 на Windows 10 сводится к следующим шагам:
1) Запускаем PowerShell с правами администратора и включаем компонент «Подсистема Windows для Linux», для этого вводим команду:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2) Далее необходимо включить необязательный компонент «Платформа виртуальных машин», для этого в PowerShell с правами администратора выполняем команду:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
4) Выбираем WSL 2 в качестве версии по умолчанию, если этого не сделать новые дистрибутивы Linux будут установлены в WSL 1. Вновь запускаем PowerShell с правами администратора и добавляем команду:
wsl —set-default-version 2
Далее нужно выбрать в магазине Microsoft Store нужный нам дистрибутив Linux и установить его, как обычное приложение из магазина. Я установил Ubuntu 18.04 (https://www.microsoft.com/store/apps/9N9TNGVNDL3Q)
После я запускаю установленную Убунту и задаю логин и пароль.
Все, Убунту можно закрыть.
Установка Docker на Windows 10
Теперь установим Docker Desktop WSL 2 backend, идем по ссылке https://hub.docker.com/editions/community/docker-ce-desktop-windows/ Скачиваем и устанавливаем Docker Desktop for Windows (stable).
Запускаем скачанный файл и производим обычную установку приложения Windows.
При установке убедитесь что установлена галочка на Enable WSL 2 Windows Features.
После установки следуйте инструкциям и перелогиньтесь в Windows, Докер запуститься при следующем входе в Windows, иногда в первый раз может понадобится довольно длительное время.
Когда он запустится, рекомендую в окне приветствия нажать Start и пройти небольшое обучение.
После обучающего урока у вас будет запущен ваш первый Docker контейнер.
И теперь по адресу http://localhost/tutorial/ вы можете увидеть инструкцию по дальнейшей работе.
Теперь вы можете заниматься разработкой в Windows 10 использую Docker.
Кстати, я не хочу чтобы Докер запускался каждый раз при включении компьютера, поэтому в настройках я убрал галочку Start Docker Desktop when you log in.
Подсистема 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.
Сведения об установке с помощью сценария см. в разделе Использование сценария для установки 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. Likewise, the following sample configures the Docker daemon to keep images and containers in an alternate path. Если оно не указано, по умолчанию используется значение c:\programdata\docker . If not specified, the default is c:\programdata\docker .
В примере ниже управляющая программа 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
Подсистему Docker можно также настроить, изменив службу Docker командой sc config . The Docker Engine can also be configured by modifying the Docker service with sc config . При использовании этого способа флаги подсистемы Docker задаются непосредственно в службе Docker. Using this method, Docker Engine flags are set directly on the Docker service. Выполните указанную ниже команду в командной строке (cmd.exe, не PowerShell). Run the following command in a command prompt (cmd.exe not PowerShell):
Не нужно выполнять эту команду в том случае, если файл daemon.json уже содержит запись «hosts»: [«tcp://0.0.0.0:2375»] . You don’t need to run this command if your daemon.json file already contains the «hosts»: [«tcp://0.0.0.0:2375»] entry.
Распространенные конфигурации 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
После входа в систему на узле Docker и запуска команд Docker эти команды выполняются через именованный канал. When you’ve signed in to the Docker host and are locally running Docker commands, these commands are run through a named pipe. По умолчанию только члены группы «Администраторы» могут получить доступ к подсистеме Docker через именованный канал. By default, only members of the Administrators group can access the Docker Engine through the named pipe. Чтобы указать группу безопасности, имеющую такой доступ, используйте флаг group . To specify a security group that has this access, use the group flag.
Конфигурация прокси-сервера Proxy configuration
Чтобы задать данные о прокси-сервере для docker search и docker pull , создайте переменную среды Windows с именем HTTP_PROXY или HTTPS_PROXY и значением, содержащим данные о прокси-сервере. To set proxy information for docker search and docker pull , create a Windows environment variable with the name HTTP_PROXY or HTTPS_PROXY , and a value of the proxy information. Это можно сделать в PowerShell, используя команду следующего вида: This can be completed with PowerShell using a command similar to this:
После задания переменной перезапустите службу 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
- На компьютере с Windows 10 перейдите в раздел Параметры >Приложения. Go to Settings >Apps on your Windows 10 machine
- В разделе Приложения и компоненты найдите пункт Docker для Windows Under Apps & Features, find Docker for Windows
- Последовательно выберите Docker для Windows >Удалить. Go to Docker for Windows >Uninstall
Удаление 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 с помощью команды PS C:\> Get-PackageProvider -Name *Docker* You can find the Package Provider that you used to install Docker with PS C:\> Get-PackageProvider -Name *Docker*
Очистка данных и системных компонентов 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. Go to Control Panel >Programs >Programs and Features >Turn Windows features on or off.
- Найдите имя компонента, который требуется отключить — в данном случае это Контейнеры и (необязательно) Hyper-V. Find the name of the feature or features you want to disable—in this case, Containers and (optionally) Hyper-V.
- Снимите флажок рядом с именем компонента, который нужно отключить. Uncheck the box next to the name of the feature you want to disable.
- Нажмите кнопку ОК. Select «OK»
Удаление компонентов 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: