最佳答案
我可以成功地运行 ubuntu
容器:
# docker run -it -d ubuntu
3aef6e642327ce7d19c7381eb145f3ad10291f1f2393af16a6327ee78d7c60bb
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3aef6e642327 ubuntu "/bin/bash" 3 seconds ago Up 2 seconds condescending_sammet
但是执行 docker attach
是一个悬而未决的问题:
# docker attach 3aef6e642327
直到我按下任何键,如 Enter
:
# docker attach 3aef6e642327
root@3aef6e642327:/#
root@3aef6e642327:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
为什么 docker attach
会挂起来?
更新 :
看了评论后,我想我得到了答案:
先决条件:
“ docker atta”重用相同的 tty,而不是打开新 tty
(1)在不使用守护进程模式的情况下执行 docker run
:
# docker run -it ubuntu
root@eb3c9d86d7a2:/#
一切正常,然后运行 ls
命令:
root@eb3c9d86d7a2:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@eb3c9d86d7a2:/#
(2)在守护进程模式下运行 docker run
:
# docker run -it -d ubuntu
91262536f7c9a3060641448120bda7af5ca812b0beb8f3c9fe72811a61db07fc
其实是 应该从运行的容器输出以下内容到 stdout:
root@91262536f7c9:/#
所以执行 docker attach
看起来是挂起的,但实际上它在等待您的输入:
# docker attach 91262536f7c9
ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@91262536f7c9:/#