docker将Ctrl + p更改为其他内容?

719*_*016 41 docker

我正在使用docker run /bin/bash开发我的容器,每次我想Ctrl+p在终端或emacs中使用时,我必须输入两次,因为docker使用它来从容器中分离(Ctrl+p Ctrl+q).

如何更改Ctrl+p为emacs或终端设置中未使用的其他更方便的内容?

cre*_*ack 34

Docker有一个配置文件,您可以使用更改分离绑定

{
    "detachKeys": "ctrl-e,e"
}
Run Code Online (Sandbox Code Playgroud)

~/.docker/config.json.

注:如果您使用的运行码头工人sudo docker ....docker目录中的配置文件必须在根目录的主目录(即/root/.docker/config.json).

  • 谢谢.然后功能请求:-) https://github.com/dotcloud/docker/issues/3519 (2认同)

Bre*_*ung 21

现在有一个解决方案,所以我想在这里更新它以方便其他人.

只需添加一个~/.docker/config.json并设置自己的键绑定.

{
    "detachKeys": "ctrl-e,e"
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以Ctrl-p再次使用bash和emacs.是啊!

  • 但这会使“ctrl+e”出现问题。我想知道,有没有办法完全删除该组合? (3认同)

jer*_*ean 5

这是对我有用的东西(比其他答案更详细)

您修改docker配置文件:

~/.docker/config.json
Run Code Online (Sandbox Code Playgroud)

例如:

{
    "auths": {
            "amz": {
                "auth": key"
            },
            "amz2": {
                "auth": key2"
            },
            "amz3": {
                "auth": "key3" }
         },
    "detachKeys": "ctrl-e,e"
}
Run Code Online (Sandbox Code Playgroud)

注意:分离不再是ctrl-p,ctrl-q,而是ctrl-e + e键。

因此,步骤如下:

  1. 更改配置文件
  2. 从终端分离(使用旧的/默认的按键绑定)
  3. 再次附加(docker exec -it / bin / bash

随后,您指定的新键绑定应起作用

来源:https : //github.com/mx4492/dotfiles/commit/bad340b8ddeda6078093e89acacfcba8af74a0cc


gec*_*kos 5

在不更改全局配置的情况下使用它

docker exec --detach-keys='ctrl-e,e' -ti foo /bin/bash
Run Code Online (Sandbox Code Playgroud)