关于docker使用run命令加上参数-it时出现the input device is not a TTY. If you are using mintty, try prefixing the

最近在用docker时创建redis的镜像时,使用命令
docker run -it --name redis-master redis /bin/bash
出现问题
the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'
就算加上winpty在前缀,也出现问题
/usr/local/bin/docker-entrypoint.sh: 16: exec: C:/Program Files (x86)/Git/usr/bin/bash.exe: not found

最后采用了命令才解决问题

winpty docker run -it --name redis-master redis bash

如果采用这种方法的话要退出容器但是不结束容器可以采用按住ctrl+p+q,如果想要退出同时结束容器可以采用输入命令exit

同时,如果采用第一种方式的,要想再次进入容器可以使用命令winpty  docker attach 容器名/容器Id

还有问题就是使用-v挂载文件+winpty控制输入流的的时候出现的问题

Error response from daemon: invalid mode: \Program Files (x86)\Git\usr\src\app.
invalid volume specification: '/c/Users/Administrator/project/Django/App1:~/usr/src/app': invalid mount config for type "bind": invalid mount path: '~/usr/src/app' mount path must be absolute.

我才用一下方法解决,抛弃了winpty

docker run -it -d --name App1 --link redis-master:db  -v /project/Django/App1:/usr/src/app django /bin/bash

你可能感兴趣的:(docker)