Cómo usar el comando docker context export para exportar un contexto

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás a utilizar el comando docker context export para exportar un contexto de Docker. Comenzaremos creando un nuevo contexto de Docker, lo que te permitirá conectar tu CLI de Docker a diferentes daemons de Docker.

Después de crear un nuevo contexto, practicarás la exportación de este contexto. Aprenderás cómo exportar el contexto a un archivo para su uso posterior o compartirlo, y también cómo exportar el contexto directamente a la salida estándar (STDOUT). Esta experiencia práctica demostrará la aplicación del comando docker context export para gestionar y compartir tus entornos de Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/ls -.-> lab-555130{{"Cómo usar el comando docker context export para exportar un contexto"}} docker/inspect -.-> lab-555130{{"Cómo usar el comando docker context export para exportar un contexto"}} docker/create -.-> lab-555130{{"Cómo usar el comando docker context export para exportar un contexto"}} end

Crear un nuevo contexto de Docker

En este paso, aprenderemos cómo crear un nuevo contexto de Docker. Un contexto de Docker es una forma de conectar tu CLI de Docker a un daemon de Docker diferente. Esto puede ser útil cuando deseas administrar Docker en una máquina remota o en un entorno distinto.

Por defecto, tu CLI de Docker se conecta al daemon local de Docker. Podemos ver el contexto actual usando el comando docker context ls.

docker context ls

Deberías ver una salida similar a esta, indicando que el contexto predeterminado está activo:

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST environment variable   unix:///var/run/docker.sock

Ahora, creemos un nuevo contexto. Crearemos un contexto llamado my-context. Para este ejemplo, seguiremos apuntándolo al daemon local de Docker, pero en un escenario real, lo apuntarías a un daemon remoto.

Usamos el comando docker context create seguido del nombre del contexto y el endpoint.

docker context create my-context --docker "host=unix:///var/run/docker.sock"

Después de crear el contexto, deberías ver un mensaje de confirmación:

my-context
Successfully created context "my-context"

Ahora, listemos los contextos nuevamente para ver el recién creado.

docker context ls

Ahora deberías ver tanto default como my-context en la lista.

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST environment variable   unix:///var/run/docker.sock
my-context                                                    unix:///var/run/docker.sock

Para cambiar al nuevo contexto, usamos el comando docker context use seguido del nombre del contexto.

docker context use my-context

Verás un mensaje confirmando el cambio de contexto:

my-context
Current context is now "my-context"

Finalmente, listemos los contextos una vez más para confirmar que my-context es ahora el contexto activo, indicado por el asterisco *.

docker context ls

La salida debería mostrar my-context como el contexto activo:

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default             Current DOCKER_HOST environment variable   unix:///var/run/docker.sock
my-context *                                                  unix:///var/run/docker.sock

Exportar el contexto de Docker a un archivo

En este paso, aprenderemos cómo exportar un contexto de Docker a un archivo. Exportar un contexto te permite guardar su configuración en un archivo, que luego puede ser compartido o importado en otra máquina. Esto es particularmente útil para compartir acceso a entornos remotos de Docker.

Exportaremos el contexto my-context que creamos en el paso anterior. Usamos el comando docker context export, seguido del nombre del contexto y la ruta del archivo de salida deseado. Lo exportaremos a un archivo llamado my-context.dockercontext en el directorio ~/project.

docker context export my-context > ~/project/my-context.dockercontext

Este comando exportará la configuración de my-context al archivo especificado. No habrá salida en la consola si el comando se ejecuta correctamente.

Para verificar que el archivo se creó, podemos listar los archivos en el directorio ~/project usando el comando ls.

ls ~/project/

Deberías ver my-context.dockercontext en la lista de archivos.

También podemos ver el contenido del archivo de contexto exportado usando el comando cat.

cat ~/project/my-context.dockercontext

La salida mostrará la configuración de my-context en formato JSON. Contendrá información sobre el contexto, como su nombre y el endpoint de Docker.

{
  "Name": "my-context",
  "Metadata": null,
  "Endpoints": {
    "docker": {
      "Host": "unix:///var/run/docker.sock",
      "SkipTLSVerify": false
    }
  },
  "TLSMaterial": null
}

Este archivo exportado ahora puede usarse para importar este contexto en otra máquina usando el comando docker context import.

Exportar el contexto de Docker a STDOUT

En este paso, aprenderemos cómo exportar un contexto de Docker directamente a la salida estándar (STDOUT). Esto es útil cuando deseas visualizar rápidamente la configuración del contexto o redirigirla a otro comando sin guardarla en un archivo.

Nuevamente usaremos el comando docker context export con el contexto my-context que creamos anteriormente. Esta vez no redirigiremos la salida a un archivo.

docker context export my-context

Al ejecutar este comando, se mostrará en tu terminal la representación JSON de la configuración de my-context.

{
  "Name": "my-context",
  "Metadata": null,
  "Endpoints": {
    "docker": {
      "Host": "unix:///var/run/docker.sock",
      "SkipTLSVerify": false
    }
  },
  "TLSMaterial": null
}

Este contenido es idéntico al que se guardó en el archivo my-context.dockercontext en el paso anterior. Exportar a STDOUT es una forma conveniente de inspeccionar la configuración del contexto directamente.

También puedes redirigir esta salida a otros comandos para procesarla. Por ejemplo, podrías redirigirla a jq para analizar el JSON o a grep para buscar información específica.

Por ejemplo, para encontrar el endpoint de Docker en el contexto exportado:

docker context export my-context | grep "unix:///var/run/docker.sock"

Este comando exportará el contexto a STDOUT y luego usará grep para encontrar la línea que contiene "unix:///var/run/docker.sock". La salida será:

      "Host": "unix:///var/run/docker.sock",

Esto demuestra cómo puedes trabajar fácilmente con la configuración del contexto directamente desde la línea de comandos sin crear archivos intermedios.

Resumen

En este laboratorio, aprendimos cómo crear y gestionar contextos de Docker. Comenzamos comprendiendo qué es un contexto de Docker y cómo listar los contextos existentes usando docker context ls. Luego creamos un nuevo contexto llamado my-context utilizando docker context create, demostrando cómo especificar el endpoint de Docker. Finalmente, practicamos el cambio entre contextos usando docker context use.

Tras la creación y cambio de contextos, exploramos el comando docker context export. Aprendimos cómo exportar un contexto específico de Docker a un archivo, permitiendo compartir o hacer copias de seguridad de configuraciones de contexto fácilmente. Adicionalmente, vimos cómo exportar la configuración del contexto directamente a la salida estándar, brindando flexibilidad para scripting o uso inmediato. Estos pasos proporcionaron una comprensión integral sobre la gestión y exportación de contextos Docker para conectarse a diferentes daemons de Docker.