Introducción a .NET y DockerIntroduction to .NET and Docker

.NET Core puede ejecutarse con facilidad en un contenedor de Docker..NET Core can easily run in a Docker container. Los contenedores proporcionan una manera ligera de aislar la aplicación del resto del sistema host, con tan solo compartir el kernel y usar los recursos proporcionados a la aplicación.Containers provide a lightweight way to isolate your application from the rest of the host system, sharing just the kernel, and using resources given to your application. Si no está familiarizado con Docker, se recomienda encarecidamente que lea la documentación de introducción a Docker.If you're unfamiliar with Docker, it's highly recommended that you read through Docker's overview documentation.

Para más información sobre cómo instalar Docker, vea la página de descarga de Docker Desktop: Community Edition.For more information about how to install Docker, see the download page for Docker Desktop: Community Edition.

Conceptos básicos de DockerDocker basics

Hay algunos conceptos con los que debe estar familiarizado.There are a few concepts you should be familiar with. El cliente Docker tiene un programa de interfaz de la línea de comandos que se usa para administrar imágenes y contenedores.The Docker client has a command line interface program you use to manage images and containers. Como se mencionó anteriormente, debe dedicar tiempo a leer la documentación de introducción a Docker.As previously stated, you should take the time to read through the Docker overview documentation.

ImágenesImages

Una imagen es una colección ordenada de los cambios del sistema de archivos que forman la base de un contenedor.An image is an ordered collection of filesystem changes that form the basis of a container. La imagen no tiene ningún estado y es de solo lectura.The image doesn't have a state and is read-only. La mayor parte del tiempo, una imagen se basa en otra imagen, pero con alguna personalización.Much the time an image is based on another image, but with some customization. Por ejemplo, al crear una imagen para una aplicación, esta se basaría en una imagen existente que ya contiene .NET Core Runtime.For example, when you create an new image for your application, you would base it on an existing image that already contains the .NET Core runtime.

Dado que los contenedores se crean a partir de imágenes, estas tienen un conjunto de parámetros de ejecución (por ejemplo, un archivo ejecutable de inicio) que se ejecutan cuando se inicia el contenedor.Because containers are created from images, images have a set of run parameters (such as a starting executable) that run when the container starts.

ContenedoresContainers

Un contenedor es una instancia ejecutable de una imagen.A container is a runnable instance of an image. Al crear la imagen, implementa la aplicación y sus dependencias.As you build your image, you deploy your application and dependencies. Después, se pueden crear instancias de varios contenedores, cada una de ellas aisladas entre sí.Then, multiple containers can be instantiated, each isolated from one another. Cada instancia de contenedor tiene su sistema de archivos, memoria e interfaz de red propios.Each container instance has its own filesystem, memory, and network interface.

RegistrosRegistries

Los registros de contenedor son una colección de repositorios de imágenes.Container registries are a collection of image repositories. Puede basar sus imágenes en una imagen del registro.You can base your images on a registry image. Puede crear contenedores directamente a partir de una imagen en un registro.You can create containers directly from an image in a registry. La relación entre los contenedores, las imágenes y los registros de Docker es un concepto importante a la hora de diseñar y compilar aplicaciones o microservicios en contenedores.The relationship between Docker containers, images, and registries is an important concept when architecting and building containerized applications or microservices. Este enfoque reduce en gran medida el tiempo que transcurre entre el desarrollo y la implementación.This approach greatly shortens the time between development and deployment.

Docker tiene un registro público hospedado en Docker Hub que puede usar.Docker has a public registry hosted at the Docker Hub that you can use. Las imágenes relacionadas con .NET Core aparecen en Docker Hub..NET Core related images are listed at the Docker Hub.

El registro de contenedor de Microsoft (MCR) es el origen oficial de las imágenes de contenedor proporcionadas por Microsoft.The Microsoft Container Registry (MCR) is the official source of Microsoft-provided container images. El MCR se basa en Azure CDN para proporcionar imágenes replicadas globalmente.The MCR is built on Azure CDN to provide globally-replicated images. Sin embargo, el MCR no tiene un sitio web público, y la manera principal de obtener información sobre las imágenes de contenedor proporcionadas por Microsoft es en las páginas de Microsoft Docker Hub.However, the MCR does not have a public-facing website and the primary way to learn about Microsoft-provided container images is through the Microsoft Docker Hub pages.

DockerfileDockerfile

Un archivo Dockerfile es aquel que define un conjunto de instrucciones que crea una imagen.A Dockerfile is a file that defines a set of instructions that creates an image. Cada instrucción de Dockerfile crea una capa en la imagen.Each instruction in the Dockerfile creates a layer in the image. Por lo general, cuando se recompila la imagen, solo se recompilan las capas que han cambiado.For the most part, when you rebuild the image, only the layers that have changed are rebuilt. El Dockerfile se puede distribuir a otros usuarios, para que puedan recrear una imagen de la misma manera que usted.The Dockerfile can be distributed to others and allows them to recreate a new image in the same manner you created it. Aunque esto le permite distribuir las instrucciones sobre cómo crear la imagen, el método principal para distribuir la imagen consiste en publicarla en un registro.While this allows you to distribute the instructions on how to create the image, the main way to distribute your image is to publish it to a registry.

Imágenes de .NET Core.NET Core images

Las imágenes oficiales de Docker en .NET Core se publican en el registro de contenedor de Microsoft (MCR) y se pueden encontrar en el repositorio de Docker Hub para Microsoft .NET Core.Official .NET Core Docker images are published to the Microsoft Container Registry (MCR) and are discoverable at the Microsoft .NET Core Docker Hub repository. Cada repositorio contiene imágenes para diferentes combinaciones de .NET (SDK o Runtime) y del sistema operativo que puede usar.Each repository contains images for different combinations of the .NET (SDK or Runtime) and OS that you can use.

Microsoft ofrece imágenes que se adaptan a escenarios específicos.Microsoft provides images that are tailored for specific scenarios. Por ejemplo, el repositorio de ASP.NET Core proporciona imágenes que se compilan para ejecutar aplicaciones de ASP.NET Core en producción.For example, the ASP.NET Core repository provides images that are built for running ASP.NET Core apps in production.

Servicios de AzureAzure services

Varios servicios de Azure admiten contenedores.Various Azure services support containers. Cree una imagen de Docker para la aplicación e impleméntela en alguno de los siguientes servicios:You create a Docker image for your application and deploy it to one of the following services:

Pasos siguientesNext steps