Programación, Tecnología y Más...

Programación, Tecnología y Más...

Docker Container en Net Core y Publicar en Docker Hub

Seguramente has escuchado hablar sobre docker (contenedores, imagenes etc) y lo útil que es para nosotros como desarrolladores.

Pues bien en este artículo veremos cómo usar docker en  aplicaciones net core, para este ejemplo estaré usando el ejemplo del artículo anterior en donde creamos una api con jwt en net core 5  ver articulo.

Para realizar este ejemplo debes tener instalado docker  Install Docker Engine y tener una cuenta en docker hub.

Para crear el contenedor de la aplicación net core necesitas crear un archivo Dockerfile lo puedes crear manual usando la documentación de docker  si usas visual studio este te da la opcion para poder crearlo rápidamente con las configuraciones que tu aplicación necesita, en nuestro caso que estamos usando visual code esta extensión nos servira con la creacion e implementacion de contenedores.


Se nos creará el archivo Dockerfile con las configuraciones necesarias para extraer las imagenes o contenedores que nuestra aplicación necesita.(Esta son configuraciones básicas que necesita tu aplicación para poder ejecutarla en un contenedor, si tu necesitas realizar configuraciones adicionales debes agregarlas manualmente.)

Si bien es cierto que visual code o visual studio nos generan las configuraciones necesarias para que nuestra aplicación la podamos ejecutar en un contenedor en muchas ocasiones debemos realizar configuraciones adicionales para que nuestra aplicación funcione correctamente así que te invito a que leas la documentación de docker.

En la terminal de vscode ejecutamos el siguiente comando para construir la imagen(Ojo debemos estar en la carpeta del proyecto al mismo nivel donde se creó el Dockerfile)

docker build -t netcorejwt .
Con este comando lo que estamos haciendo es construir una imagen con el nombre netcorejwt basada en todas las configuraciones del archivo Dockerfile que creamos. Si observamos en la consola veremos que empieza a descargar lo archivos necesarios para crear nuestra imagen y también ejecuta los comandos dotnet definidos en el archivo.

Para verificar que nuestra imagen se creó correctamente podemos ejecutar el siguiente comando de docker
docker images
Observaremos la imagen con el nombre que le asignamos netcorejwt 

Lo siguiente que haremos será crear el contenedor de nuestra aplicación basado en la imagen que creamos anteriormente, para hacer esto hay varias formas, pero la forma que más se usa y creo que mas sencilla es usar docker build.
docker run -d -p 5000:5000 --name myapi netcorejwt 


Con este comando docker crea y ejecuta el contenedor en base a la imagen que creamos(netcorejwt), también le estamos indicando en el puerto que queremos que se ejecute le asignamos un nombre al contenedor(myapi).

Podemos verificar que el contenedor se creo correctamente con el siguiente comando.
docker ps 


Para probar nuestra api desde el contenedor podemos usar postman y hacer la petición para poder loguearnos(importante  no podremos ver la interfaz de swagger porque esta solo se muestra en desarrollo y la api se está ejecutando en release desde el contenedor).


Publicar Imagen en Docker Hub

Ya verificamos que nuestra imagen está funcionando correctamente, entonces podemos publicar nuestra imagen en docker-hub para que otros programadores puedan descargarla.

Lo primero que tendremos que hacer será crear un repositorio en docker hub


Iniciamos sesión desde la terminal de vscode con docker login

Para publicar la imagen primero debemos etiquetar la imagen(netcorejwt) con nuestro nombre de usuario de docker hub y el nombre del repositorio que creamos(cristiantorres/netcoreapiwjt)
docker tag netcorejwt cristiantorres/netcoreapiwjt
Por último hacemos el push de la imagen hacia el repositorio de docker hub
docker push cristiantorres/netcoreapiwjt
Listo ya tenemos nuestra imagen en docker hub cualquier otro programador puede descargar la imagen y ejecutarla fácilmente cristiantorres/netcoreapiwjt.

puedes descargar el código desde este repositorio


si quieren donarme para una café lo pueden hacer aqui.

Hasta la próxima.

Saludos desde El Salvador...

Publicar un comentario

0 Comentarios