Contenedorización de aplicaciones C# con Docker: guía paso a paso

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Por qué su proyecto C# necesita Docker?

\n\n

Imagine la situación: escribió una excelente aplicación C# en su portátil con Windows 11, instaló todas las bibliotecas, configuró la base de datos y funciona perfectamente. Pero cuando le pasa el proyecto a un compañero en macOS o lo sube a un servidor Linux, comienza el caos: "tengo otra versión de .NET", "¿y dónde está SQL Server?", "en tu código tienes la ruta a los archivos hardcodeada"... ¿Le suena familiar?

\n\n

Aquí es donde la contenedorización de aplicaciones C# con Docker viene al rescate. Docker le permite empaquetar su aplicación junto con todas sus dependencias, configuraciones e incluso el sistema operativo en un contenedor ligero. Y funcionará igual en todas partes: en su PC, en el servidor de su colega, en la nube de AWS o Azure.

\n\n

En este artículo, analizaremos cómo contenerizar aplicaciones C# con Docker de principio a fin. Aprenderá a crear un Dockerfile para ASP.NET Core, cómo optimizar el tamaño de la imagen y cómo ejecutar todo esto con un solo comando. ¡Vamos allá!

\n\n

¿Qué es Docker y por qué lo necesita un desarrollador C#?

\n\n

Docker es una plataforma para la contenedorización de aplicaciones. Un contenedor es un entorno aislado que contiene su aplicación y todo lo que necesita para funcionar: runtime, bibliotecas, variables de entorno, configuraciones. A diferencia de las máquinas virtuales, los contenedores utilizan el núcleo del sistema operativo compartido, por lo que se inician más rápido y ocupan menos espacio.

\n\n

Para un desarrollador .NET, Docker ofrece varias características killer:

\n\n
    \n
  • Elimina el problema "en mi máquina funciona" — el contenedor garantiza un entorno idéntico
  • \n
  • Simplifica el CI/CD — construye la imagen una vez y la usa en todas partes
  • \n
  • Arquitectura de microservicios — cada servicio en C# vive en su propio contenedor
  • \n
  • Escalabilidad — fácilmente ejecute 10 copias de su API en un par de segundos
  • \n
  • Aislamiento — las dependencias de un proyecto no entran en conflicto con otro
  • \n
\n\n

Si aún no está utilizando la contenedorización de aplicaciones .NET, es hora de empezar. Y lo haremos ahora mismo.

\n\n

Preparación: qué necesita instalar

\n\n

Antes de comenzar con la contenedorización de C#, asegúrese de tener instalado:

\n\n
    \n
  1. Docker Desktop — descárguelo del sitio oficial. Para Windows, asegúrese de habilitar WSL 2 (recibirá indicaciones durante la instalación).
  2. \n
  3. .NET SDK 8.0 (o 7.0/9.0 — no es crítico) — descárguelo de Microsoft.
  4. \n
  5. VS Code o Visual Studio 2022 — para trabajar cómodamente con el código.
  6. \n
\n\n

Verifique la instalación con los comandos en la terminal:

\n\n
docker --version\ndotnet --version
\n\n

Si ambos comandos devuelven un número de versión, todo está listo para el desarrollo Docker para .NET.

\n\n

Creando una aplicación C# simple para contenerizar

\n\n

Para la demostración, tomaremos una API web mínima de ASP.NET Core. Crearemos el proyecto en una carpeta vacía:

\n\n
dotnet new webapi -n MyDockerApp\ncd MyDockerApp
\n\n

Abra el archivo Program.cs y simplifíquelo de la siguiente manera (para que sea claro):

\n\n
var builder = WebApplication.CreateBuilder(args);\nvar app = builder.Build();\n\napp.MapGet("/", () => "Hello from Dockerized C# App!");\n\napp.Run();
\n\n

Ejecútelo localmente para asegurarse de que funciona:

\n\n
dotnet run
\n\n

Vaya a su navegador a http://localhost:5000 (o al puerto que muestre la consola). ¿Ve el saludo? Excelente. Ahora empaquetemos esta aplicación en Docker.

\n\n

Escribiendo el Dockerfile para la aplicación C#

\n\n

El Dockerfile es la instrucción para construir la imagen. Para <

Blogs

Book Recommendations