• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

575
Views
Monte el directorio actual como un volumen en Docker en Windows 10

Descripción

Uso la versión 1.12.5 de Docker en Windows 10 a través de Hyper-V y quiero usar archivos ejecutables de contenedores como comandos en la ruta actual. Creé una imagen de Docker que funciona bien, pero tengo un problema para montar la ruta actual. La idea es crear un alias y hacer un docker run --rm [...] para que pueda usarse en todo el sistema en el directorio actual.

Configuración

Tengo una unidad E con una carpeta "prueba" y allí una carpeta llamada "carpeta en el host de Windows" para mostrar que el comando está funcionando. El Dockerfile crea el directorio /data , lo define como VOLUME y WORKDIR.

Teniendo E:\test como el directorio actual en PowerShell y ejecutando el comando Docker con una ruta absoluta, puedo ver el contenido de E:\test :

 PS E:\test> docker run --rm -it -v E:\test:/data mirkohaaser/docker-clitools ls -la total 0 drwxr-xr-x 2 root root 0 Jan 4 11:45 . drwxr-xr-x 2 root root 0 Jan 5 12:17 folder on windows host

Problema

Quiero usar el directorio actual y no una notación absoluta. No pude usar pwd en el volumen debido a diferentes mensajes de error:

Probando con ($pwd)

 PS E:\test> docker run --rm -it -v ($pwd):/data mirkohaaser/docker-clitools ls -la C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: ":/data" is not a valid repository/tag. See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

Probando con /($pwd)

 PS E:\test> docker run --rm -it -v /($pwd):/data mirkohaaser/docker-clitools ls -la C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error parsing reference: "E:\\test" is not a valid repository/tag. See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

Probando con \´pwd\´

 PS E:\test> docker run --rm -it -v ´$pwd´:/data mirkohaaser/docker-clitools ls -la C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Invalid bind mount spec "´E:\\test´:/data": invalid mode: /data. See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

Probando con `pwd`

 PS E:\test> docker run --rm -it -v `$pwd`:/data mirkohaaser/docker-clitools ls -la C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: create $pwd: "$pwd" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

¿Cuál es la sintaxis correcta para montar el directorio actual como un volumen en Docker en Windows 10?

about 3 years ago · Santiago Trujillo
3 answers
Answer question

0

En la línea de comandos de Windows ( cmd ), puede montar el directorio actual así:

 docker run --rm -it -v %cd%:/usr/src/project gcc:4.9

En PowerShell, usa ${PWD} , que le brinda el directorio actual:

 docker run --rm -it -v ${PWD}:/usr/src/project gcc:4.9

En Linux:

 docker run --rm -it -v $(pwd):/usr/src/project gcc:4.9

Plataforma cruzada

Las siguientes opciones funcionarán tanto en PowerShell como en Linux (al menos Ubuntu):

 docker run --rm -it -v ${PWD}:/usr/src/project gcc:4.9 docker run --rm -it -v $(pwd):/usr/src/project gcc:4.9
about 3 years ago · Santiago Trujillo Report

0

Esto funciona para mí en PowerShell:

 docker run --rm -v ${PWD}:/data alpine ls /data
about 3 years ago · Santiago Trujillo Report

0

  1. Abra Configuración en Docker Desktop (Docker para Windows).
  2. Seleccione Unidades compartidas .
  3. Seleccione la unidad que desea usar dentro de sus contenedores (por ejemplo, C).
  4. Haga clic en Aplicar . Es posible que se le solicite proporcionar credenciales de usuario. Habilitación de unidades para contenedores en Windows

  5. El siguiente comando ahora debería funcionar en PowerShell (el símbolo del sistema no es compatible ${PWD} ):

    docker run --rm -v ${PWD}:/data alpine ls /data

IMPORTANTE : si/cuando cambia la contraseña de su dominio de Windows, el montaje dejará de funcionar en silencio , es decir, -v funcionará pero el contenedor no verá las carpetas y los archivos de su host. Solución : vuelva a Configuración, desmarque las unidades compartidas, Aplicar , vuelva a marcarlas, Aplicar e ingrese la nueva contraseña cuando se le solicite.

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error