Ejercicio: Inserción de una imagen de microservicio en Docker Hub
Para que Kubernetes pueda crear una imagen de contenedor, necesita un lugar del cual obtenerla. Docker Hub es un lugar central para cargar imágenes de Docker. Muchos productos, incluido Kubernetes, pueden crear contenedores basados en imágenes de Docker Hub.
Nota:
Completará este ejercicio en un codespace de GitHub que tenga Docker y el SDK de .NET preinstalado. Al usar estas técnicas en un entorno de desarrollo propio, asegúrese de que tiene instalados estos requisitos previos.
Abrir el entorno de desarrollo
Puede optar por usar un codespace de GitHub que hospede el ejercicio, o bien hacer el ejercicio localmente en Visual Studio Code.
Para usar un codespace, cree un codespace de GitHub preconfigurado con este vínculo de creación de Codespace.
El proceso tarda varios minutos mientras GitHub crea y configura el espacio de código. Una vez finalizado, el código usado en el resto de este módulo está en el directorio /dotnet-kubernetes.
Para usar Visual Studio Code, clone el repositorio https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative en la máquina local. Después:
- Instale cualquier requisito del sistema para ejecutar Dev Container en Visual Studio Code.
- Asegúrese de que Docker se está ejecutando.
- En una ventana nueva de Visual Studio Code, abra la carpeta del repositorio clonado
- Presione Ctrl+Mayús+P para abrir la paleta de comandos.
- Buscar: >Contenedores de desarrollo: Recompilar y volver a abrir en contenedor
- Seleccione eShopLite - dotnet-kubernetes en la lista desplegable. Visual Studio Code crea el contenedor de desarrollo localmente.
Comprobación de las imágenes de Docker mediante la creación de contenedores en el codespace
En el proyecto de Contoso Shop hay dos contenedores. Antes de insertar las imágenes en Docker Hub, se usarán para crear los contenedores en el codespace. Una vez que se han creado los contenedores y están en ejecución, podrá examinar el sitio web de la empresa Contoso y comprobar que los microservicios funcionan correctamente.
Siga estos pasos para crear y ejecutar contenedores de Docker en el codespace.
Cambie a la pestaña TERMINAL y ejecute el siguiente comando para crear la raíz del código:
cd dotnet-kubernetes
Ejecute el comando siguiente para compilar los contenedores:
dotnet publish /p:PublishProfile=DefaultContainer
La creación de los contenedores puede tardar un tiempo.
Ejecute el comando siguiente para ejecutar la aplicación y adjuntar los contenedores:
docker compose up
Para probar el servicio de front-end, cambie a la pestaña PUERTOS y, después, a la derecha de la dirección local del puerto Front End, seleccione el icono de globo. El explorador muestra la página de inicio.
Seleccione Productos. El catálogo muestra la mercancía de Contoso.
Cierre el sitio web, vuelva a la pestaña TERMINAL y presione CTRL + C. Docker
compose
detiene los contenedores.
Inicio de sesión en Docker Hub
El siguiente paso para cargar las imágenes en Docker Hub es iniciar sesión en Docker Hub. En el símbolo del sistema escriba el siguiente comando:
docker login
Importante
Use el mismo nombre de usuario y la contraseña que ha utilizado al crear la cuenta de Docker. Si es necesario, puede visitar el sitio web de Docker Hub para restablecer la contraseña.
Carga de las imágenes en Docker Hub
Escriba el código siguiente para volver a etiquetar, o cambiar de nombre, las imágenes de Docker que ha creado con el nombre de usuario de Docker.
docker tag store [YOUR DOCKER USER NAME]/storeimage docker tag products [YOUR DOCKER USER NAME]/productservice
Finalmente, cargue o inserte las imágenes de Docker en Docker Hub.
docker push [YOUR DOCKER USER NAME]/storeimage docker push [YOUR DOCKER USER NAME]/productservice
Si recibe un error de autenticación, puede ejecutar
docker logout
seguido dedocker login
para volver a autenticarse.
En este ejercicio, ha usado Dockerfiles y Docker Compose para crear dos imágenes y contenedores de Docker e insertar esas imágenes en Docker Hub.
Ahora está listo para usar Kubernetes y administrar la implementación de los microservicios de Contoso.