Cómo usar el comando docker context create para gestionar endpoints de Docker

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 gestionar eficazmente diferentes endpoints de Docker utilizando el comando docker context create. Explorarás cómo crear un nuevo contexto que apunte a tu demonio de Docker local, permitiéndote definir y cambiar explícitamente entre conexiones.

Además, descubrirás cómo simplificar la creación de contextos aprovechando la configuración de contextos existentes. Esto incluye crear un nuevo contexto copiando uno existente y crear un contexto que utilice la configuración del endpoint de Docker de otro contexto, brindando flexibilidad y eficiencia en la gestión de tus entornos de Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/ls -.-> lab-555129{{"Cómo usar el comando docker context create para gestionar endpoints de Docker"}} docker/inspect -.-> lab-555129{{"Cómo usar el comando docker context create para gestionar endpoints de Docker"}} docker/create -.-> lab-555129{{"Cómo usar el comando docker context create para gestionar endpoints de Docker"}} docker/images -.-> lab-555129{{"Cómo usar el comando docker context create para gestionar endpoints de Docker"}} end

Crear un contexto con un endpoint local de Docker

En este paso, aprenderás a crear un contexto de Docker que apunte a tu demonio de Docker local. Un contexto de Docker es una forma de gestionar conexiones a diferentes demonios de Docker (locales o remotos). Por defecto, Docker utiliza el contexto default, que apunta al demonio local. Sin embargo, puedes crear nuevos contextos para definir explícitamente las conexiones.

Primero, verifiquemos los contextos existentes.

docker context ls

Deberías ver el contexto default en la lista.

Ahora, creemos un nuevo contexto llamado my-local-context que apunte al endpoint local de Docker. Usaremos el comando docker context create con la bandera --docker para especificar el endpoint de Docker. Como nos estamos conectando al demonio local, podemos usar la ruta predeterminada del socket.

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

Después de crear el contexto, puedes listar los contextos nuevamente para ver el recién creado.

docker context ls

Ahora deberías ver tanto default como my-local-context en la lista. El asterisco (*) indica el contexto activo actual, que aún debería ser default.

Para usar el nuevo contexto, debes cambiarte a él usando el comando docker context use.

docker context use my-local-context

Ahora, si listas los contextos nuevamente, my-local-context debería ser el activo.

docker context ls

Puedes verificar que estás usando my-local-context ejecutando un comando simple de Docker, como listar imágenes.

docker images

Este comando ahora se ejecutará contra el demonio de Docker especificado por my-local-context.

Finalmente, puedes volver al contexto predeterminado si es necesario.

docker context use default

Crear un contexto a partir de un contexto existente

En este paso, aprenderás a crear un nuevo contexto de Docker copiando la configuración de un contexto existente. Esto puede ser útil si deseas crear una versión ligeramente modificada de un contexto existente sin tener que especificar todos los detalles nuevamente.

Primero, asegurémonos de tener el contexto my-local-context creado en el paso anterior. Puedes listar los contextos para confirmar.

docker context ls

Ahora, crearemos un nuevo contexto llamado my-copied-context basado en my-local-context. Usaremos el comando docker context create y especificaremos la bandera --from seguida del nombre del contexto existente.

docker context create my-copied-context --from my-local-context

Después de crear el nuevo contexto, lista los contextos nuevamente para ver my-copied-context en la lista.

docker context ls

Ahora deberías ver default, my-local-context y my-copied-context. El contexto my-copied-context tendrá la misma configuración de endpoint Docker que my-local-context.

Puedes cambiar al nuevo contexto para verificar su configuración.

docker context use my-copied-context

Ahora, lista los contextos nuevamente para confirmar que my-copied-context es el activo.

docker context ls

También puedes inspeccionar la configuración del nuevo contexto usando el comando docker context inspect.

docker context inspect my-copied-context

Esto mostrará los detalles del contexto, incluyendo el endpoint Docker que está configurado para usar. Deberías ver que está configurado para usar el socket local de Docker, al igual que my-local-context.

Finalmente, vuelve al contexto predeterminado para el siguiente paso.

docker context use default

Crear un contexto usando la configuración de endpoint Docker de otro contexto

En este paso, aprenderás a crear un nuevo contexto de Docker especificando explícitamente la configuración del endpoint Docker, utilizando potencialmente información de otro contexto como referencia. Mientras que el paso anterior mostraba cómo copiar un contexto completo, este método permite un control más granular sobre la configuración del nuevo contexto.

Primero, listemos los contextos existentes para ver lo que tenemos.

docker context ls

Deberías ver default, my-local-context y my-copied-context.

Ahora, crearemos un nuevo contexto llamado my-explicit-context. Definiremos explícitamente el endpoint Docker usando la bandera --docker, similar al Paso 1. Podemos referirnos a la configuración de un contexto existente como my-local-context para obtener los detalles correctos del endpoint, aunque en este caso es el socket local estándar.

docker context create my-explicit-context --description "Contexto con endpoint local explícito" --docker "host=unix:///var/run/docker.sock"

También hemos añadido una descripción usando la bandera --description para hacer más claro el propósito del contexto.

Lista los contextos nuevamente para ver el recién creado my-explicit-context.

docker context ls

Ahora deberías ver default, my-local-context, my-copied-context y my-explicit-context.

Cambia al nuevo contexto para activarlo.

docker context use my-explicit-context

Lista los contextos una vez más para confirmar que my-explicit-context es el activo.

docker context ls

También puedes inspeccionar la configuración de my-explicit-context para ver los detalles, incluyendo la descripción que añadiste.

docker context inspect my-explicit-context

Esto demuestra cómo puedes crear un contexto proporcionando explícitamente la configuración del endpoint Docker, lo cual es útil cuando te conectas a demonios Docker remotos o cuando necesitas un control preciso sobre los detalles de conexión.

Resumen

En este laboratorio, aprendiste a gestionar endpoints de Docker utilizando el comando docker context create. Comenzaste creando un nuevo contexto llamado my-local-context que apunta explícitamente al daemon local de Docker, demostrando cómo definir una conexión usando la bandera --docker y la ruta del socket. Practicaste listar contextos existentes, cambiar entre ellos usando docker context use y verificar el contexto activo. También viste cómo ejecutar un comando de Docker como docker images se realiza contra el contexto actualmente activo.

Además, exploraste cómo crear un nuevo contexto aprovechando la configuración de un contexto existente, lo cual es una forma conveniente de construir sobre configuraciones de conexión preexistentes. Esto permite una gestión eficiente y reutilización de configuraciones de endpoints de Docker.