6

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

此外,其他事情似乎不起作用。例如,根据文档,ctrl-c应该导致附加的容器停止并分离。但是,我无法ctrl-c处理我的任何容器。ctrl-q但是,与 不同的是,ctrl-c它按预期呈现反馈,^C在终端中显示 a。

我注意到由于某种原因,当我按 时ctrl-p,我在终端中得到 a ^P,但按ctrl-qorctrl-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"

然后我附加使用:

$ docker attach container-test

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

4

2 回答 2

12

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

docker attach --sig-proxy=false container-test

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

于 2018-02-23T23:21:37.077 回答
2

我发现通过在 my 中添加以下行docker-compose,我可以让它退出并响应输入。

services:
  test:
    // etc...
    stdin_open: true
    tty: true
    // etc...
于 2018-02-24T03:22:28.637 回答