Docker: Usos avanzados de contextos

Cómo usar contextos de Docker en sus scripts

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución Docker cloud CaaS (Containers as a Service) lista para usar que proporciona una serie de beneficios, incluyendo:

  • Despliega fácilmente tus contenedores en producción con solo un docker-compose up.
  • Nombre de dominio personalizable asegurado con HTTPS (por ejemplo, https://api.tu-empresa.com, https://www.tu-empresa.com, https://backoffice.tu-empresa.com).
  • Rendimiento óptimo y seguridad robusta gracias a una VM privada y dedicada.
  • Actualizaciones sin esfuerzo con solo un clic.

Ahorra tiempo y simplifica tu vida: ¡solo toma 5 minutos probar la solución de alojamiento en la nube Docker CaaS de Stackhero y desplegar tus contenedores en producción!

Trabajar con comandos de Docker context use es ideal para ejecutar comandos manualmente. Pero al usar scripts, existen métodos alternativos más adecuados que simplifican el proceso. En lugar de invocar directamente el comando, puede establecer el contexto deseado utilizando la variable de entorno DOCKER_CONTEXT. Este enfoque se integra perfectamente en los flujos de trabajo de scripts y mantiene la claridad de la configuración.

En los ejemplos proporcionados, reemplace <XXXXXX>.stackhero-network.com con el dominio específico de su instancia de Docker (<XXXXXX>.stackhero-network.com).

Aquí hay un ejemplo de cómo establecer el contexto de Docker dentro de un script bash:

#!/bin/bash
set -e

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

echo "IP de Docker para la instancia de Stackhero:"
docker run --rm alpine wget -q -O - ifconfig.me

Al establecer la variable de entorno DOCKER_CONTEXT, puede gestionar convenientemente el contexto activo directamente en sus scripts.

Para evitar codificar la DOCKER_CONTEXT, puede cargar su valor desde un archivo .env. Este método mantiene organizados los ajustes del entorno y facilita los ajustes:

#!/bin/bash
set -e

source .env

echo "IP de Docker para la instancia de Stackhero:"
docker run --rm alpine wget -q -O - ifconfig.me

Cree un archivo .env con el siguiente contenido:

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

También puede establecer la variable DOCKER_CONTEXT en un Makefile. Aquí hay un ejemplo de exportar la variable y ejecutar un contenedor de Docker:

# Makefile
export DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

getIp:
	docker run --rm alpine wget -q -O - ifconfig.me

Después de crear el Makefile, invoque el comando usando:

make getIp

Si encuentra el error Makefile: *** missing separator. Stop., asegúrese de que la línea docker run [...] comience con un carácter TAB, no con espacios.

Puede simplificar aún más la configuración incluyendo un archivo .env en su Makefile. Este enfoque asegura una gestión centralizada de sus ajustes de entorno:

# Makefile
include .env
export

getIp:
	docker run --rm alpine wget -q -O - ifconfig.me

Cree un archivo .env con este contenido:

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

Luego ejecute el comando:

make getIp

Si encuentra el error Makefile: *** missing separator. Stop., verifique que la línea docker run [...] comience con un carácter TAB en lugar de espacios.