为什么"docker attach"不起作用并在 ubuntu 上阻止我的 konsole



基本上,我有一个正在运行的容器,我想在其上附加控制台。 我已使用docker run -p 8080:80 test来启动我的容器。它似乎工作正常。

我的码头工人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

然后尝试连接我的控制台

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

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

我做错了什么?

ps 我的码头工人版本是:Docker version 1.13.1, build 092cba3

尝试使用docker exec,用于调试目的:

docker exec -it test bash

(假设您的测试映像已安装bash或至少安装了sh。如果基于阿尔卑斯山,则ash)

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

您可以在不附加到容器的情况下查看容器的输出:

docker logs -f <container-id>

但是如果你真的需要附加到它,你必须用 -it 标志开始它:

docker run --detach -it -p 8080:80 test

要附加:

docker attach <container-id>

不要使用 Ctrl+C 进行分离,因为这将是退出程序的信号。使用 Ctrl+P 然后按 Ctrl+Q 进行分离。

最新更新