tag remove images imagenes example dockers docker docker-image

remove - download docker image



la ventana acoplable ejecuta<IMAGE><MULTIPLE COMMANDS> (5)

Para cualquier otra persona que vino aquí que busca hacer lo mismo con docker-compose , solo necesita anteponer bash -c e incluir múltiples comandos entre comillas, unidos junto con && .

Entonces, en el ejemplo de OPs, docker-compose run image bash -c "cd /path/to/somewhere && python a.py"

Estoy tratando de ejecutar MÚLTIPLES comandos como este.

docker run image cd /path/to/somewhere && python a.py

Pero esto me da el error "No existe tal archivo o directorio" porque se interpreta como ...

"docker run image cd /path/to/somewhere" && "python a.py"

Parece que se necesitan algunos caracteres ESCAPE como "" o ().

Entonces también intenté

docker run image "cd /path/to/somewhere && python a.py" docker run image (cd /path/to/somewhere && python a.py)

Pero estos no funcionaron.

He buscado Docker Run Reference pero no he encontrado ninguna pista sobre los caracteres ESCAPE.


Para ejecutar varios comandos en docker, use /bin/bash -c y punto y coma ;

docker run image_name /bin/bash -c "cd /path/to/somewhere; python a.py"

En caso de que necesitemos que se ejecute command2 (python) si y solo si command1 (cd) devolvió el estado de salida cero (sin error), use && lugar de ;

docker run image_name /bin/bash -c "cd /path/to/somewhere && python a.py"



Si desea almacenar el resultado en un archivo fuera del contenedor, en su máquina local, puede hacer algo como esto.

RES_FILE=$(readlink -f /tmp/result.txt) docker run --rm -v ${RES_FILE}:/result.txt img bash -c "cat /etc/passwd | grep root > /result.txt"

El resultado de sus comandos estará disponible en /tmp/result.txt en su máquina local.


También puede canalizar comandos dentro del contenedor Docker, bash -c "<command1> | <command2>" por ejemplo:

docker run img /bin/bash -c "ls -1 | wc -l"

Pero, sin invocar el shell en el control remoto, la salida se redirigirá al terminal local.