对于我的生活,我似乎无法弄清楚为什么ctrl- p并且ctrl- n不要像我们一直在使用的Docker图像那样工作. ctrl- p应该像up箭头一样工作,但我通常必须按两次才能得到我跑的最后一个命令.它以似乎是随机的方式在历史中循环.
也许有人可以帮助我理解这一点.
docker run -it buildpack-deps:trusty # run a Linux based image root@74cbcf321fae:/# ls bin boot dev etc home lib lib64 ... root@74cbcf321fae:/# touch hello
如果我按up这里,它应该显示touch
命令,然后按ls
.如果我按Ctrl- p但是,第一次没有任何事情发生.当我再次按它时,ls
神奇地出现.
有人可以帮我理解这些.我不能没有Ctrl- p而且Ctrl- n.
看起来这已经在文档中删除(或移动),但它曾经住在这里:https://docs.docker.com/engine/reference/commandline/attach/
编辑:看起来他们在配置文件文档中引用了下面的内容.
从docker容器中分离的命令序列是ctrl- p ctrl- q,这就是为什么ctrl- p不能按预期工作.当你点击ctrl- p,码头工人正在等待ctrl- q所以没有任何反应.
您可以使用新--detach-keys
参数来docker run
覆盖此序列,而不是ctrl- p:
docker run -ti --detach-keys="ctrl-@" ubuntu:14.04 bash $# ls $# <--- Ctrl-P here will display ls now $# <--- Ctrl-@ here will detach from the running container
如果需要,可以将其添加到~/.docker/config.json
文件中以保留此更改:
{ ... "detachKeys": "ctrl-@", ... }
有关这方面的更多详细信息,请访问:https://github.com/docker/docker/pull/15666,因为我在文档中找不到它.