Compartir a través de


Solución de problemas de desarrollo de Visual Studio con Docker

Aplicable a: Visual Studio

Al trabajar con Visual Studio Container Tools, es posible que encuentre problemas al compilar o depurar la aplicación. En este artículo se presentan algunos pasos comunes de solución de problemas para estos problemas.

El uso compartido de volúmenes no está habilitado. Habilitación del uso compartido de volúmenes en Docker CE para la configuración de Windows (solo contenedores de Linux)

Solo tiene que administrar el uso compartido de archivos si usa Hyper-V con Docker. Si usa WSL 2, no es necesario seguir los pasos descritos en esta sección y la opción compartir archivos no está visible. Para resolver este problema:

  1. Haga clic con el botón derecho en Docker para Windows en el área de notificación y seleccione Settings.

  2. Seleccione RecursosUso compartido de archivos y comparta la carpeta a la que se necesita tener acceso. Es posible compartir todo el disco del sistema, pero no es una práctica recomendada.

    Captura de pantalla de discos compartidos.

Sugerencia

Visual Studio le pregunta si Unidades compartidas no están configuradas.

Problemas con rutas de acceso en contenedores de Windows

Al usar rutas de acceso de archivo específicas de Linux en un contenedor de Windows, es posible que encuentre varios errores de entrada o salida de archivo (E/S). Si ve estos errores, compruebe el valor de la variable de entorno . Si se establece la variable, Visual Studio intenta utilizar rutas de acceso del Subsistema de Windows para Linux (WSL) para hacer referencia a los archivos de Windows al crear volúmenes. Este enfoque es necesario para Docker en WSL, pero no funciona con Docker Desktop en Windows. Desactive siempre esta variable de entorno si usa contenedores de Windows.

No se puede iniciar la depuración

Una razón para este problema es que los componentes de depuración obsoletos están en tu carpeta de perfil de usuario. Ejecute los siguientes comandos para quitar estas carpetas para que los componentes de depuración más recientes se descarguen en la siguiente sesión de depuración.

  • del %userprofile%\vsdbg
  • del %userprofile%\onecoremsvsmon

Errores específicos de red al depurar tu aplicación

Pruebe a ejecutar el script descargable desde Cleanup Container Host Networking, que actualiza los componentes relacionados con la red en el equipo host.

Montajes denegados

Al usar Docker para macOS, podría producirse un error al hacer referencia a la carpeta /usr/local/share/dotnet/sdk/NuGetFallbackFolder. Agregue la carpeta a la pestaña Uso compartido de archivos en Docker.

Grupo de usuarios de Docker

Es posible que encuentre el siguiente error en Visual Studio al trabajar con contenedores:

El usuario actual debe estar en el grupo "docker-users" para usar Docker Desktop. Agréguese al grupo "docker-users" y cierre sesión de Windows.

Debe ser miembro del grupo "docker-users" para tener permisos para trabajar con contenedores de Docker. Para agregarse al grupo en Windows 10 o posterior, siga estos pasos:

  1. En el menú Inicio, abra Administración de equipos.
  2. Expanda Usuarios y grupos locales y seleccione Grupos.
  3. Busque el grupo docker-users, haga clic con el botón derecho y seleccione Agregar al grupo.
  4. Agregue la cuenta o cuentas de usuario.
  5. Cierre la sesión y vuelva a iniciarla para que estos cambios surtan efecto.

También puede usar el comando en el símbolo del sistema en modo administrador para agregar usuarios a grupos específicos.

net localgroup docker-users DOMAIN\username /add

En PowerShell, use la función Add-LocalGroupMember.

Espacio de disco bajo

De forma predeterminada, Docker almacena imágenes en la carpeta %ProgramData%/Docker/ , que normalmente se encuentra en la unidad del sistema, C:\ProgramData\Docker\. Para evitar que las imágenes ocupen espacio valioso en la unidad del sistema, puede cambiar la ubicación de la carpeta de imágenes. Para cambiar la ubicación:

  1. Haga clic con el botón derecho en el icono de Docker en la barra de tareas y seleccione Configuración.

  2. Seleccione Docker Engine (Motor de Docker).

  3. En el panel de edición, agregue la configuración de la propiedad con el valor de la ubicación deseada para las imágenes de Docker:

       "graph": "D:\\mypath\\images"
    

    Captura de pantalla del uso compartido de archivos de Docker.

  4. Seleccione Aplicar y reiniciar. En estos pasos se modifica el archivo de configuración que se encuentra en %ProgramData%\docker\config\daemon.json. Las imágenes creadas anteriormente no se mueven.

Error de coincidencia de tipos de contenedores

Al agregar compatibilidad con Docker a un proyecto, elige un contenedor de Windows o Linux. Si el host de Docker Server no está configurado para ejecutar el mismo tipo de contenedor que el destino del proyecto, verá un error similar al siguiente:

Captura de pantalla del desajuste entre el host y el proyecto de Docker.

Para resolver este problema, haga clic con el botón derecho en el icono de Docker para Windows en la bandeja del sistema y seleccione Cambiar a contenedores de Windows... o Cambiar a contenedores de Linux....

ContainerToolsPackage o DockerComposePackage no se cargaron correctamente

Una caché de Managed Extensibility Framework (MEF) dañada puede causar este problema. Para corregirlo, elimine la carpeta ComponentModelCache de la instancia de Visual Studio.

  1. Cierre todas las instancias de Visual Studio.

  2. Ejecute el siguiente comando de PowerShell para eliminar la carpeta ComponentModelCache :

    Get-ChildItem -Path "$(Join-Path $Env:LOCALAPPDATA "Microsoft\VisualStudio")" -Recurse -Include "ComponentModelCache" | Remove-Folder
    

También puede eliminar la carpeta manualmente:

  1. Abra %localappdata%\Microsoft\VisualStudio en el Explorador de archivos.
  2. Abra la subcarpeta correspondiente a la versión de Visual Studio (por ejemplo, 18.0_b653d53f).
  3. Elimine la carpeta ComponentModelCache .

Otros problemas

Para ver cualquier otro problema que encuentre, consulte Microsoft/DockerTools.

Referencias

  • Mensajes de error de Container Tools