Docker: Primeros pasos
Gestión remota de Docker rápida y segura con Stackhero for Docker
Bienvenido a la documentación de Stackhero
Stackhero ofrece una plataforma Docker cloud CaaS (Containers as a Service) lista para usar, diseñada para despliegues de contenedores rápidos y fiables:
- Despliegue en producción con un simple
docker-compose up. No necesita configuración adicional: simplemente inicie sus contenedores.- Elija su propio nombre de dominio, asegurado automáticamente con HTTPS (por ejemplo: https://api.su-empresa.com, https://www.su-empresa.com o https://backoffice.su-empresa.com).
- Disfrute de un alto rendimiento y una seguridad robusta sobre infraestructura privada y dedicada.
- Aplique actualizaciones con un solo clic para un mantenimiento sencillo y sin complicaciones.
Puede tener sus contenedores en producción en unos cinco minutos. Stackhero gestiona la infraestructura, las actualizaciones y la seguridad por usted, para que pueda centrarse en el desarrollo de sus aplicaciones. Lea más sobre el alojamiento cloud Docker CaaS.
Cómo usar Docker CLI de forma remota
Docker CLI debe estar instalado en su ordenador. Si aún no lo ha instalado, puede descargarlo desde el sitio oficial de Docker: Docker Desktop.
Con Stackhero for Docker, puede gestionar sus contenedores de forma remota con Docker CLI, igual que lo haría en local. Así mantiene su flujo de trabajo habitual, pero ahora puede ejecutar comandos directamente en su servidor Docker listo para producción: de manera segura y eficiente.
Los "contextos" de Docker hacen esto posible. Los contextos permiten indicar a Docker CLI dónde enviar sus comandos: a su demonio Docker local o a su instancia Stackhero for Docker. Cambiar de contexto es rápido y transparente.
Instalar los certificados de Docker
Para conectarse de forma segura a su instancia Stackhero for Docker, debe instalar sus certificados en su ordenador. Estos certificados gestionan la autenticación y el cifrado, asegurando que su conexión sea privada y protegida.
Puede utilizar el siguiente comando para descargar e instalar los certificados:
# HOST es el nombre de dominio de su instancia Docker (<XXXXXX>.stackhero-network.com).
# SERVICE_ID es el identificador de su servicio Stackhero.
# CERTIFICATES_PASSWORD es la contraseña definida en la configuración de Docker en el panel de Stackhero.
(export HOST="<XXXXXX>.stackhero-network.com"
export SERVICE_ID="<SERVICE_ID>"
export CERTIFICATES_PASSWORD="<CERTIFICATES_PASSWORD>"
cd /tmp/ \
&& curl -o certificates.tar https://docker:$CERTIFICATES_PASSWORD@$HOST/stackhero/docker/certificates.tar \
&& tar -xf certificates.tar \
&& (docker context rm -f $HOST 2> /dev/null || true) \
&& docker context create $HOST \
--description "$SERVICE_ID ($HOST)" \
--docker "host=tcp://$HOST:2376,ca=ca.pem,cert=cert.pem,key=key.pem")
Este comando crea un contexto de Docker con el nombre de su dominio de servicio. Puede ver todos los contextos disponibles con:
docker context ls
Si actualiza el dominio de su servicio, los certificados cambiarán. Tendrá que reinstalarlos para volver a conectarse de forma segura.
Ejecutar contenedores Docker de forma remota
Por defecto, al ejecutar docker ps se muestran los contenedores de su máquina local. Por ejemplo, al ejecutar:
docker run --rm alpine wget -q -O - ifconfig.me
se devuelve la IP pública de su ordenador, ya que el contenedor se ejecuta localmente.
Para trabajar de forma remota, cambie el contexto de Docker a su instancia Stackhero for Docker:
docker context use <XXXXXX>.stackhero-network.com
Ahora, cada comando de Docker CLI se ejecutará en su servidor Docker remoto. Si ejecuta el mismo comando para comprobar la IP:
docker run --rm alpine wget -q -O - ifconfig.me
verá la IP pública de su instancia Stackhero for Docker. Esto confirma que sus contenedores se están ejecutando en el servidor remoto.
Para volver a su demonio Docker local, simplemente ejecute:
docker context use default
Cuando monte un volumen en un contenedor remoto, los archivos disponibles serán los del servidor remoto, no los de su máquina local. Por ejemplo,
docker run -it -v ${PWD}:/mnt alpinemontará el directorio remoto, no su directorio local actual.
Desplegar con Docker Compose
Docker Compose también utiliza el contexto Docker actual. Una vez que haya establecido el contexto en la instancia remota con:
docker context use <XXXXXX>.stackhero-network.com
cualquier comando de Docker Compose que ejecute operará sobre su servidor remoto. Así, desplegar aplicaciones multicontenedor es tan sencillo como trabajar en local, pero directamente en su entorno de producción.
Cambiar de contexto con
docker contextes útil para uso interactivo. Para scripts o Makefiles, la variable de entornoDOCKER_CONTEXTle ofrece un mayor control. Puede encontrar más detalles en nuestra documentación avanzada.
Para profundizar en el uso de contextos de Docker, la documentación oficial de Docker sobre contextos ofrece información adicional.