Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

409
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda