Docker: Managing Docker contexts in bash scripts

This documentation is part of the Advanced context usages guide. You can view the complete guide here: How to use Docker contexts in your scripts.

Welcome to the Stackhero documentation

Stackhero offers a ready-to-use Docker cloud CaaS (Containers as a Service) platform, designed for fast and reliable container deployments:

  • Deploy to production with a single docker-compose up command. No additional configuration is required: simply start your containers.
  • Choose your own domain name, automatically secured with HTTPS (for example: https://api.your-company.com, https://www.your-company.com, or https://backoffice.your-company.com).
  • Benefit from high performance and enhanced security on private, dedicated infrastructure.
  • Apply updates with a single click for straightforward, effortless maintenance.

Your containers can be live in production in around five minutes. Stackhero manages the infrastructure, updates, and security for you, so you can focus on developing your applications. Find out more about Docker CaaS cloud hosting.

Here is an example of how to set the Docker context within a bash script:

#!/bin/bash
set -e

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

echo "IP from Docker for Stackhero instance:"
docker run --rm alpine wget -q -O - ifconfig.me

By setting the DOCKER_CONTEXT environment variable, you can conveniently manage the active context directly in your scripts.

To avoid hardcoding the DOCKER_CONTEXT, you can load its value from a .env file. This method keeps environment settings organised and facilitates adjustments:

#!/bin/bash
set -e

source .env

echo "IP from Docker for Stackhero instance:"
docker run --rm alpine wget -q -O - ifconfig.me

Create a .env file with the following contents:

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com