Integrar docker context show en el prompt de la terminal
En este paso, integraremos el comando docker context show
en tu prompt de terminal. Esto te permitirá ver el contexto actual de Docker directamente en el prompt, facilitando el seguimiento del demonio de Docker con el que estás interactuando.
Modificaremos el archivo .zshrc
en tu directorio principal, que es el archivo de configuración para el shell Zsh. Añadiremos una función que obtiene el contexto actual de Docker e incluiremos su salida en la cadena del prompt.
Primero, abre el archivo .zshrc
usando el editor nano
:
nano ~/.zshrc
Desplázate al final del archivo y añade las siguientes líneas:
## Function to get current Docker context
get_docker_context() {
docker context show 2> /dev/null
}
## Add Docker context to prompt
PROMPT='$(get_docker_context) %~ %## '
Analicemos estas líneas:
get_docker_context()
: Define una nueva función de shell llamada get_docker_context
.
docker context show 2>/dev/null
: Dentro de la función, este comando obtiene el contexto actual de Docker. 2>/dev/null
redirige cualquier error a /dev/null
, evitando que ensucie el prompt si Docker no está ejecutándose o hay algún problema.
PROMPT='$(get_docker_context) %~ %## '
: Establece la variable de entorno PROMPT
, que define la apariencia del prompt.
$(get_docker_context)
: Ejecuta la función e incluye su salida en el prompt.
%~
: Muestra el directorio actual, abreviando el directorio principal como ~
.
%#
: Muestra #
si eres root o %
si eres un usuario normal.
Guarda el archivo presionando Ctrl + X
, luego Y
, y finalmente Enter
.
Para aplicar los cambios en la sesión actual, ejecuta:
source ~/.zshrc
Después de esto, tu prompt debería mostrar el contexto actual de Docker (que debería ser default
) antes del directorio actual.
Puedes probarlo cambiando nuevamente a my-context
:
docker context use my-context
El prompt se actualizará mostrando my-context
seguido del directorio actual.
Luego vuelve al contexto predeterminado:
docker context use default
El prompt volverá a mostrar default
.