start remove lightweight instalar iniciar imagen compose centos docker

lightweight - remove docker centos



docker exec-it devuelve "no se puede habilitar el modo tty en la entrada no tty" (8)

Ejecutar docker exec -i lugar de docker exec -it solucionó mi problema. De hecho, mi script fue lanzado por CRONTAB, que no es una terminal.

Como recordatorio:

Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] Run a command in a running container -i, --interactive=false Keep STDIN open even if not attached -t, --tty=false Allocate a pseudo-TTY

docker exec -it comando docker exec -it devuelve el siguiente error "no se puede habilitar el modo tty en la entrada no tty"

level="fatal" msg="cannot enable tty mode on non tty input"

Estoy ejecutando docker (1.4.1) en centos box 6.6. Estoy tratando de ejecutar el siguiente comando docker exec -it containerName /bin/bash pero recibo el siguiente error

level="fatal" msg="cannot enable tty mode on non tty input"


Encontré este mismo mensaje de error en Windows 7 64bit usando Mintty enviado con Git para Windows. $docker run -i -t ubuntu /bin/bash cannot enable tty mode on non tty input

Traté de prefijar el comando anterior con winpty como sugerían otras respuestas, pero al ejecutarlo me mostró otro mensaje de error a continuación: $ winpty docker run -i -t ubuntu /bin/bash exec: "D://Git//usr//bin//bash": executable file not found in $PATH docker: Error response from daemon: Container command not found or does not exist..

Luego $ winpty docker run -i -t ubuntu bash root@512997713d49:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr root@512997713d49:/# el siguiente comando que me dio lo que quería: $ winpty docker run -i -t ubuntu bash root@512997713d49:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr root@512997713d49:/#


Estoy ejecutando docker exec -it en trabajos de jenkins y obtengo el error ''no se puede habilitar el modo tty en la entrada no tty''. No se devuelve ninguna salida al comando docker exec. Mi secuencia de inicio de sesión de trabajo fue:

jenkins shell -> ssh user@<testdriver> -> ssh root@<sut> -> su - <user> -> docker exec -it <container>

Hice un cambio para usar el indicador -T en el ssh inicial de jenkins. "-T - Deshabilita la asignación de pseudo-terminal". Y use -i flag con docker exec en lugar de -it. "-i - interactivo. -t - asigna pseudo tty". Esto parece haber resuelto mi problema.

jenkins shell -> ssh -T user@<testdriver> -> ssh root@<sut> -> su - <user> -> docker exec -i <container>

El tipo de comportamiento coincide con este error de ejecución de Docker: github.com/docker/docker/issues/8755 . La solución alternativa sobre esa discusión de errores de Docker sugiere usar esto:

docker exec -it <CONTAINER> script -qc <COMMAND>

Usar esa solución no resolvió mi problema. Sin embargo, es interesante. Pruebe estos utilizando diferentes indicadores y bajo diferentes invocaciones ssh, puede ver ''no es un tty'' incluso con el uso de -t con docker exec:

$ docker exec -it <CONTAINER> script -qc ''tty'' /dev/pts/0 $ docker exec -it <CONTAINER> ''tty'' not a tty $ docker exec -it <CONTAINER> bash -c ''tty'' not a tty


Obtengo "no se puede habilitar el modo tty en la entrada no tty" para el siguiente comando en windows con boot2docker

docker exec -it <containerIdOrName> bash

El siguiente comando solucionó el problema

winpty docker exec -it <containerIdOrName> bash


Si está en Windows y está usando docker-machine y está usando GIT Bash o Cygwin, para "ingresar" a un contenedor en ejecución, deberá hacer lo siguiente:

docker-machine ssh default a ssh en la máquina virtual (Virtualbox muy probablemente)

docker exec -it <container> bash para ingresar al contenedor.

EDITAR:

Recientemente descubrí que si usa Windows PowerShell, puede ejecutar docker exec directamente en el contenedor, con Cygwin o Git Bash puede usar winpty docker exec -it <container> bash y omitir el paso docker-machine ssh arriba.


Si recibe este error en el cliente de Windows Docker , es posible que deba usar el comando Ejecutar como se muestra a continuación

$ winpty docker run -it ubuntu /bin/bash


solo usa "-i"

docker exec -i [your-ps] [comando]


docker exec ejecuta un nuevo comando en un contenedor que ya se está ejecutando . No es la forma de iniciar un nuevo contenedor: use docker run para eso.

Esa puede ser la causa del error de "entrada no tty". O podría ser donde está ejecutando Docker. ¿Es un verdadero terminal? Es decir, ¿hay disponible una sesión completa de tty? Es posible que desee comprobar si está en una sesión interactiva con

[[ $- == *i* ]] && echo ''Interactive'' || echo ''Not interactive''

de https://unix.stackexchange.com/questions/26676/how-to-check-if-a-shell-is-login-interactive-batch