docker attach:为什么我不能从Docker容器中分离?

dea*_*aze 4 macos docker docker-compose docker-for-mac

由于某些原因,运行后我无法从Docker容器中分离出来docker attach <container>。该文档说要使用Ctrl-p, Ctrl-q,但似乎不起作用。我也尝试了ctrl-q + ctrl-p(组合,而不是按顺序)和ctrl-shift-q, ctrl-shift-pctrl-shift-q + ctrl-shift-p。例如,即使设置分离键--detach-keys="p"也不会从容器分离。

此外,其他事情似乎不起作用。例如,根据文档,ctrl-c应使连接的容器停止并脱离。但是,我无法ctrl-c在任何容器上工作。ctrl-q但是,与不同,它ctrl-c按预期方式提供反馈,^C并在终端中显示a 。

我已经注意到,由于某种原因,当我按时ctrl-p,会^P在终端中显示a,但是按ctrl-qctrl-shift-q不会显示终端反馈。

任何人都可以猜测为什么会发生这种情况吗?

如果重要的话,我在MacOS上使用iTerm2。此外,有问题的容器还通过发射docker-compose

编辑:为清楚起见,我docker-compose up在以下compose文件上启动了我的容器:

version: '3'

services:
  test:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: container-test
    ports:
      - "5050:5050"
Run Code Online (Sandbox Code Playgroud)

然后我使用附加:

$ docker attach container-test
Run Code Online (Sandbox Code Playgroud)

编辑2:经过一些测试,我可以确认MacOS终端中仍然存在此问题。

Dev*_*str 9

您可以使用--sig-proxy=false来防止信号传递到容器和分离Ctrl+C

docker attach --sig-proxy=false container-test
Run Code Online (Sandbox Code Playgroud)

这似乎是一个已知问题:https : //github.com/docker/for-mac/issues/1598