Docker: Comenzando
Cómo empezar con Stackhero para Docker
👋 ¡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!
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 aquí: https://www.docker.com/products/docker-desktop/.
Con Stackhero para Docker, puede conectarse a su servidor Docker de forma remota desde su ordenador tal como lo haría al trabajar localmente. Esta configuración le permite mantener su flujo de trabajo habitual mientras proporciona una forma robusta de gestionar sus contenedores en producción.
Para lograr esto, se utilizan "contextos" de Docker. Los contextos de Docker le permiten usar el Docker CLI en su ordenador y especificar dónde deben ejecutarse los comandos: en su demonio Docker local (como de costumbre) o en su instancia de Stackhero para Docker.
Instalar certificados de Docker
Para conectarse de forma remota a su instancia de Stackhero para Docker, primero deberá instalar sus certificados. Estos certificados aseguran la autenticación y el cifrado seguros entre su ordenador y su instancia de Stackhero para Docker.
En su ordenador, puede usar el siguiente comando:
# HOST es el nombre de dominio de su instancia de Stackhero para Docker (<XXXXXX>.stackhero-network.com).
# SERVICE_ID es su ID de servicio de Stackhero.
# CERTIFICATES_PASSWORD es la contraseña definida en su configuración de Stackhero para Docker.
(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")
Ahora ha creado un contexto de Docker que lleva el nombre de dominio de su servicio. Para ver todos sus contextos, puede ejecutar el comando docker context ls.
Si actualiza su dominio de servicio, los certificados cambiarán y deberá reinstalarlos.
Ejecutar contenedores Docker de forma remota
Actualmente, si lista sus contenedores con el comando docker ps, su Docker CLI usará su demonio Docker local, mostrando los contenedores que se ejecutan en su ordenador.
Por ejemplo, puede ejecutar este comando para obtener la IP pública de su demonio Docker: docker run --rm alpine wget -q -O - ifconfig.me. Dado que el contenedor se ejecuta en su ordenador, verá la IP de su router de internet como respuesta.
Cambiemos el contexto de Docker para usar su instancia de Stackhero para Docker. Simplemente ejecute el comando docker context use <XXXXXX>.stackhero-network.com. Ahora, los comandos de Docker iniciados en su ordenador se ejecutarán de forma segura en su demonio Docker remoto.
Ejecute de nuevo el mismo comando para recuperar la IP pública de su demonio Docker: docker run --rm alpine wget -q -O - ifconfig.me. Ahora debería ver la IP pública de su instancia de Stackhero para Docker, confirmando que su contenedor se está ejecutando en su servidor y ya no en su ordenador.
Para volver a usar su demonio Docker local, simplemente cambie de nuevo su contexto de Docker a "default": docker context use default.
Cuando monta un volumen en un contenedor remoto, los datos accesibles serán los del servidor remoto y no los de su ordenador. Por lo tanto, ejecutar un comando como
docker run -it -v ${PWD}:/mnt alpineno montará el directorio de su ordenador como podría esperar.
Desplegar con Docker-Compose
Al igual que el Docker CLI, el Docker-compose CLI usará su contexto actual. Por lo tanto, una vez que haya cambiado a su instancia remota con docker context use <XXXXXX>.stackhero-network.com, cada comando de Docker-compose también se ejecutará en su instancia remota.
Usar el comando
docker contextes efectivo, pero podría no ser el mejor enfoque al manejar contextos en sus scripts o Makefiles. En tales casos, considere usar la variable de entornoDOCKER_CONTEXT, que se detalla en nuestras páginas de documentación avanzada.