Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

415
Views
Docker: no se puede ejecutar el script de shell almacenado en un volumen montado

Estoy ejecutando Docker (1.10.2) en Windows . Creé un script para hacer eco de 'Hello World' en mi máquina y lo almacené en C:/Users/username/MountTest . Creé un nuevo contenedor y monté este directorio (MountTest) como un volumen de datos. El comando que ejecuté para hacerlo se muestra a continuación:

 docker run -t -i --name mounttest -v /c/Users/sarin/MountTest:/home ubuntu /bin/bash

A continuación, ejecuto el comando para ejecutar el script dentro del contenedor mounttest .

 docker exec -it mounttest sh /home/helloworld.sh

El resultado es el siguiente:

 : not foundworld.sh: 2: /home/helloworld.sh: Hello World

Obtengo el resultado deseado (echo Hello World) pero quiero entender el motivo detrás de los errores no encontrados .

Nota: Esta pregunta puede parecer similar a Ejecutar script de shell en la ventana acoplable desde un volumen compartido , pero aborda problemas relacionados con los permisos.

Referencias: El archivo helloworld.sh :

 #!/bin/sh echo 'Hello World'

La información de los volúmenes montados se captura a continuación. ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Teniendo en cuenta que el PUNTO DE ENTRADA predeterminado para la imagen 'ubuntu' es sh -c , el comando final ejecutado en docker exec es:

 sh -c 'sh /home/helloworld.sh'

Se ve un poco extraño y podría ser la causa del mensaje de error.

Prueba simplemente:

 docker exec -it mounttest /home/helloworld.sh # or docker exec -it mounttest sh -c '/home/helloworld.sh'

Por supuesto, la ejecución de la ventana docker exec debe realizarse en una sesión ssh de boot2docker, similar a la sesión de shell en la que ejecutó una ventana docker run .
Dado que la docker run abre un bash, debe crear una nueva sesión de boot2docker (docker-machine ssh) y, en esa nueva sesión de shell de boot2docker, pruebe el docker exec .

Probar docker exec desde el bash creado por docker run significa intentar hacer DiD (Docker in Docker). No es relevante para su prueba.

over 4 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 Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!