为什么“docker Attach”不起作用并阻止我在 ubuntu 上的 konsole

dmx*_*dmx 4 docker

基本上,我有一个正在运行的容器,我想在其上附加控制台。我曾经用来docker run -p 8080:80 test启动我的容器。看起来运行良好。

我的 docker ps 看起来像这样:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
81b27e2525f1        test            "/bin/sh -c /start.sh"   13 minutes ago      Up 13 minutes       8080/tcp, 0.0.0.0:8080->80/tcp   vigilant_bassi
Run Code Online (Sandbox Code Playgroud)

然后尝试连接我的控制台

user@user:~$ docker attach 81b27e2525f1 
    ls  
    ^C
    
    
    
    ls
    ^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[B^[[B^[[B^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^C^C^C^C^[[A^[[A^[[A^[[A^[[A
Run Code Online (Sandbox Code Playgroud)

这不起作用,我无法分离。
然后我认为这是我尝试在新设备上打开的一个错误,并且我遇到了完全相同的问题。现在我有多个控制台被阻止。我发现这个问题,这不是同一个问题。

我究竟做错了什么?

ps我的docker版本是:Docker version 1.13.1, build 092cba3

Von*_*onC 5

尝试使用docker exec, 来进行调试:

\n\n
docker exec -it test bash\n
Run Code Online (Sandbox Code Playgroud)\n\n

(假设您的测试映像已bash安装,或至少有一个sh。如果基于 Alpine,则有一个ash

\n\n

docker attach使用容器\xe2\x80\x99s stdio/stderr,因此您需要确保您的脚本实际上正在刷新/打印某些内容。

\n