docker change Ctrl+;去别的地方吗?
我正在使用docker change Ctrl+;去别的地方吗?,docker,Docker,我正在使用docker run/bin/bash开发我的容器,每次我想在终端或emacs中使用Ctrl+p,我都必须键入两次,因为docker使用它来从容器中分离(Ctrl+pCtrl+q) 如何将Ctrl+p更改为emacs或终端设置中未使用的更方便的内容?您可以通过添加 { "detachKeys": "ctrl-z,z" } 到~/.docker/config.json 如果config.json中还有其他条目,那么只需添加“detachK
docker run/bin/bash
开发我的容器,每次我想在终端或emacs中使用Ctrl+p
,我都必须键入两次,因为docker使用它来从容器中分离(Ctrl+p
Ctrl+q
)
如何将Ctrl+p
更改为emacs或终端设置中未使用的更方便的内容?您可以通过添加
{
"detachKeys": "ctrl-z,z"
}
到~/.docker/config.json
如果config.json
中还有其他条目,那么只需添加“detachKeys”条目作为最后一个条目。例如:
{
"HttpHeaders": {
"User-Agent": "Docker-Client/19.03.11 (linux)"
},
"detachKeys": "ctrl-z,z"
}
{
"auths": {
"amz": {
"auth": key"
},
"amz2": {
"auth": key2"
},
"amz3": {
"auth": "key3" }
},
"detachKeys": "ctrl-e,e"
}
注意:如果您使用
sudo docker…
运行docker,那么配置文件所在的.docker
目录必须位于root的主目录中(即/root/.docker/config.json
)。现在有一个解决方案,因此我想在这里更新它以方便其他人
只需添加一个~/.docker/config.json
并设置您自己的键绑定
{
"detachKeys": "ctrl-e,e"
}
现在您可以在bash和emacs中再次使用Ctrl-p
。是啊 以下是对我有效的答案(比其他答案更详细一些)
您可以修改docker配置文件:
~/.docker/config.json
例如:
{
"HttpHeaders": {
"User-Agent": "Docker-Client/19.03.11 (linux)"
},
"detachKeys": "ctrl-z,z"
}
{
"auths": {
"amz": {
"auth": key"
},
"amz2": {
"auth": key2"
},
"amz3": {
"auth": "key3" }
},
"detachKeys": "ctrl-e,e"
}
注意:分离不再是ctrl-p、ctrl-q,而是ctrl-e+e键
因此,这些步骤是:
如果任何人在更改分离键并调用
Ctrl-p
后仍无法在容器内工作,只需在终端中打印^p
,而不是在历史记录中添加条目,请确保容器中使用的外壳能够实际处理过程信号
例如,代替docker run-it…sh
使用
docker run-it…bash
在不更改全局配置的情况下使用此选项
docker exec --detach-keys='ctrl-e,e' -ti foo /bin/bash
我更多考虑的是配置文件,因为它不会影响容器的实际行为,但我想它也可以通过命令行工作:)。不管怎样,终于有了它真是太好了。@creack-这不再是正确的答案了。见下面布伦丹的答案(或公关:)。请删除或更新此答案)。这对我很有用-答案有点让人困惑,因为您只需确保将此键值对添加到
config.json
中现有的json正文中。我费了好几天的时间才弄明白为什么不能在bash中查看上一个命令行历史记录。真是一个不幸的转义键绑定选择。不适用于docker compose
:这会使ctrl+e
glitchy。我想知道,有没有一种方法可以完全删除这个组合呢?我想知道我需要做什么才能让docker获得新的配置。谢谢你提供的额外细节。