docker cambiar Ctrl + p a otra cosa?


Estoy usando docker run /bin/bash para desarrollar mi contenedor y cada vez que quiero usar Ctrl+p en un terminal o en emacs, tengo que escribirlo dos veces, ya que docker lo usa para separarse de un contenedor (Ctrl+p Ctrl+q).

¿Cómo puedo cambiar Ctrl+p por algo más conveniente que no se use en emacs o en una configuración de terminal?

 27
Author: 719016, 2013-12-29

3 answers

Docker tiene un archivo de configuración y puede cambiar el enlace de separación usando

{
    "detachKeys": "ctrl-e,e"
}

En ~/.docker/config.json.

Nota: Si está ejecutando docker usando sudo docker ... el directorio .docker con el archivo de configuración debe estar en el directorio principal de la raíz (es decir, /root/.docker/config.json).

 16
Author: creack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-06 13:44:08

Ahora hay una solución a esto, así que pensé que lo actualizaría aquí para la conveniencia de los demás.

Simplemente agregue un ~/.docker/config.json y establezca su propio enlace de teclas.

{
    "detachKeys": "ctrl-e,e"
}

Ahora puedes usar Ctrl-p en bash y emacs de nuevo. ¡Sí!

 16
Author: Brennan Cheung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-12 20:03:06

Esto es lo que funcionó para mí (con un poco más de detalle que las otras respuestas)

Se modifica el archivo de configuración de docker:

~/.docker/config.json

Por ejemplo:

{
    "auths": {
            "amz": {
                "auth": key"
            },
            "amz2": {
                "auth": key2"
            },
            "amz3": {
                "auth": "key3" }
         },
    "detachKeys": "ctrl-e,e"
}

NOTA: la separación ya no es ctrl-p,ctrl-q, sino ctrl-e + e tecla.

Así que los pasos son:

  1. Cambiar el archivo de configuración
  2. Separarse de la terminal (utilizando las asociaciones de teclas antiguas/predeterminadas)
  3. Adjuntar de nuevo (docker exec-it /bin/bash

Posteriormente las nuevas combinaciones de teclas que usted especificó debería funcionar

Fuente: https://github.com/mx4492/dotfiles/commit/bad340b8ddeda6078093e89acacfcba8af74a0cc

 2
Author: jersey bean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-12 02:53:58