Cómo utilizar el motor IronPDF en Docker | IronPDF

Run IronPDF as a Remote Container

This article was translated from English: Does it need improvement?
Translated
View the article in English

El IronPdfEngine es un servicio independiente que puede manejar la creación, escritura, edición y lectura de PDFs. IronPDF Docker está listo para ejecutar servicios docker con versiones compatibles de IronPDF (v2023.2.x y superiores). Esto ayudará a los desarrolladores a erradicar problemas de implementación que puedan estar experimentando con IronPDF.

Por qué ejecutar IronPDF como su propio contenedor es una buena idea

IronPDF requiere tanto los binarios de Chrome como de Pdfium para operar, los cuales son enormes en tamaño de archivo (cientos de MB). También requiere que se instalen varias dependencias en la máquina.

Al usar este método, su cliente solo ocupará una fracción del tamaño (en MB).

Evite problemas de implementación

Puede ser un desafío configurar el entorno/contenedor para incluir correctamente todas las dependencias. Usar el contenedor Docker de IronPDF significa que IronPDF viene preinstalado y garantizado para funcionar, evitando todos los dolores de cabeza de implementación y dependencia.

Versiones

La etiqueta de IronPDF Docker se basa en la versión del propio IronPdfEngine. No es la misma versión que el producto IronPDF.

Cada versión de IronPDF tendrá su propia versión asociada de IronPdfEngine. El número de versión debe coincidir con la versión de IronPDF Docker.

Por ejemplo, la versión IronPDF para Java 2023.2.1 requiere la versión IronPdfEngine 2023.2.1. Usted no puede usar versiones desajustadas de IronPdfEngine e IronPDF.


Cómo usar IronPDF Docker

Instalar IronPDF

Añadir el paquete Nuget IronPdf.Slim a su proyecto.

https://www.nuget.org/packages/IronPdf.Slim/

Nota: los paquetes IronPdf, IronPdf.Linux y IronPdf.MacOs contienen todos IronPdf.Slim.

Para reducir el tamaño de su aplicación, recomendamos instalar solo IronPdf.Slim. El paquete IronPdf.Native.Chrome.xxx ya no se usa, así que puede eliminarlo de su proyecto.

Determinar la versión del contenedor requerida

Por defecto, la versión de IronPDF para Docker coincidirá con la versión actual de IronPDF en NuGet. Puede usar el siguiente código para verificar manualmente la versión:

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-version.cs
string ironPdfEngineVersion = IronPdf.Installation.IronPdfEngineVersion;
Dim ironPdfEngineVersion As String = IronPdf.Installation.IronPdfEngineVersion
$vbLabelText   $csharpLabel

Configurar IronPDF para el contenedor Docker

Sin Docker Compose

Ejecute el contenedor docker usando la versión del paso anterior.

  • Docker debe estar instalado.

Configuración

  1. Vaya a https://hub.docker.com/r/ironsoftwareofficial/ironpdfengine
  2. Extraiga la última imagen ironsoftwareofficial/ironpdfengine
docker pull ironsoftwareofficial/ironpdfengine
docker pull ironsoftwareofficial/ironpdfengine
SHELL

O extraiga la versión específica (recomendado)

docker pull ironsoftwareofficial/ironpdfengine:2025.3.6
docker pull ironsoftwareofficial/ironpdfengine:2025.3.6
SHELL
  1. Ejecute el contenedor ironsoftwareofficial/ironpdfengine.

Este comando creará un contenedor y lo ejecutará en segundo plano con el puerto 33350

docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
docker run -d -p 33350:33350 -e IRONPDF_ENGINE_LICENSE_KEY=MY_LICENSE_KEY ironsoftwareofficial/ironpdfengine:2025.3.6
SHELL

Con Docker Compose

La clave es configurar una red Docker que permita a IronPdfEngine y su aplicación verse mutuamente. Establezca 'depends_on' para garantizar que IronPdfEngine esté activo antes de que su aplicación comience.

Configuración

  1. Comience creando un archivo docker-compose.yml. Configure su archivo Docker Compose utilizando la siguiente plantilla:
version: '3.6'
services:
  myironpdfengine:
    container_name: ironpdfengine
    image: ironsoftwareofficial/ironpdfengine:latest
    ports:
      - '33350:33350'
    networks:
      - ironpdf-network
  myconsoleapp:
    container_name: myconsoleapp
    build:
      # enter YOUR project directory path here
      context: ./MyConsoleApp/
      # enter YOUR dockerfile name here, relative to project directory
      dockerfile: Dockerfile
    networks:
      - ironpdf-network
    depends_on:
      myironpdfengine:
        condition: service_started
networks:
  ironpdf-network: 
    driver: 'bridge'
  1. Establezca la dirección de IronPdfEngine dentro de su aplicación (miaplicacionconsola) a "myironpdfengine:33350"
  2. Ejecute docker compose
docker compose up --detach --force-recreate --remove-orphans --timestamps
docker compose up --detach --force-recreate --remove-orphans --timestamps
SHELL

Conectarse a IronPdfEngine

Ejecute su código IronPDF; ¡su aplicación ahora se comunica con IronPdfEngine en Docker!

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-use.cs
using IronPdf;
using IronPdf.GrpcLayer;

// Configure for Docker container
var config = IronPdfConnectionConfiguration.Docker;
config.Host = "localhost";
IronPdf.Installation.ConnectToIronPdfHost(config);

// Use IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>");
pdf.SaveAs("ironpdf.pdf");
Imports IronPdf
Imports IronPdf.GrpcLayer

' Configure for Docker container
Private config = IronPdfConnectionConfiguration.Docker
config.Host = "localhost"
IronPdf.Installation.ConnectToIronPdfHost(config)

' Use IronPDF
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF Docker!<h1>")
pdf.SaveAs("ironpdf.pdf")
$vbLabelText   $csharpLabel

Tipo de conexión

Hay varios IronPdfConnectionType que puede asignar dependiendo del tipo de conexión que desee realizar.

Aquí hay una lista de propiedades disponibles:

LocalExcutable: Para conectarse a un "servidor" IronPdfEngine que ejecuta un ejecutable en su máquina local, usamos esta opción. Un ejemplo rápido sería una aplicación de facturación WinForm que genera PDFs localmente sin depender de servicios en la nube.

Docker: Esta opción debe usarse al intentar conectarse a un contenedor Docker localmente o en la nube.

RemoteServer: Esta opción se utiliza para IronPdfEngine en la nube. Esto se conecta a una instancia IronPdfEngine alojada en la nube (por ejemplo, Docker) a través del protocolo HTTP o HTTPS. Tenga en cuenta que, como esto se conecta a un servidor remoto, se requiere la URL completa (incluyendo el protocolo HTTP o HTTPS).

Custom: Para un control y personalización completos sobre la conexión, puede usar esta opción. Esta opción utiliza su Grpc.Core.ChannelBase definido por el usuario en lugar de las otras opciones definidas anteriormente. Los desarrolladores pueden crear un nuevo canal ya sea creando un nuevo objeto Grpc.Core.Channel o usando Grpc.Net.Client.GrpcChannel.ForAddress(System.String) para un control completo y personalizado sobre el canal gRPC.

.NET Framework con NetFrameworkChannel

Para .NET Framework, requerimos una configuración diferente porque gRPC funciona de manera diferente en proyectos .NET Framework. Para que este método funcione, asegúrese de que el paquete NuGet Grpc.Core esté instalado. Usaremos un canal gRPC personalizado derivado de Grpc.Core.ChannelBase para esta configuración específica.

Examinemos este ejemplo, donde implementaremos el canal de conexión para crear y guardar un PDF usando IronPDFEngine.

ConsejosDado que gRPC funciona de manera diferente en proyectos .NET Framework, si el siguiente código no funciona trate de eliminar el prefijo <http> o <https> en la dirección.]}]

AdvertenciaTenga en cuenta que este pdf.Dispose es necesario en este caso.

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-use-grpc.cs
using IronPdf;

// This code demonstrates how to use IronPdf with gRPC in a .NET Framework application.

// 1. Configure connection to use local IronPdfEngine executable
var config = IronPdf.GrpcLayer.IronPdfConnectionConfiguration.Executable;

// 2. Connect to the IronPDF host with the executable configuration
IronPdf.Installation.ConnectToIronPdfHost(config);

// 3. Create a PDF renderer instance
ChromePdfRenderer renderer = new ChromePdfRenderer();

// 4. Render HTML string as PDF document
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");

// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");

// 6. Clean up , this is needed to work
pdf.Dispose();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Método alternativo con WithCustomChannel

Un método alternativo sería utilizar el método WithCustomChannel proporcionado por el IronPdf.GrpcLayer.

El WithCustomChannel recibe dos parámetros, el customChannel, que es su canal gRPC personalizado, y metadata. El parámetro metadata es opcional y está configurado a null por defecto.

:path=/static-assets/pdf/content-code-examples/how-to/ironpdfengine-docker-use-grpc-alt.cs
using IronPdf;
using IronPdf.GrpcLayer;
using Grpc.Core;

// 1. Create custom gRPC channel (.NET Framework style)
var channel = new Channel("123.456.7.8:80", ChannelCredentials.SecureSsl);

// 2. (Optional) Add metadata headers if needed
var metadata = new Metadata
{
    { "Authorization", "Bearer your_token_here" }
};

// 3. Configure IronPDF with custom channel
var config = IronPdfConnectionConfiguration.WithCustomChannel(channel, metadata);
IronPdf.Installation.ConnectToIronPdfHost(config);

// 4. Generate PDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("Hello world");

// 5. Save the PDF to disk
pdf.SaveAs("output.pdf");

// 6. Clean up , this is needed to work
pdf.Dispose();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Implementar IronPdfEngine en AWS ECS

Prerrequisitos

Configuración

  1. Cree un Cluster ECS. Siga esta guía para crear un clúster para los tipos de lanzamiento Fargate y External usando la consola.
  2. Cree una definición de tarea. Siga esta guía para crear una definición de tarea usando la consola.

Ajustes recomendados:

  • AWS Fargate
  • Se recomienda un mínimo de 1 vCPU con 2 GB de RAM. Dependiendo de su carga de trabajo, si está trabajando con PDFs que contienen más de 10 páginas o experimentando altas solicitudes de carga, seleccione un nivel superior.
  • Modo de red: awsvpc
  • Mapeos de puertos:
    {
      "containerPort": 33350,
      "hostPort": 33350,
      "protocol": "tcp",
      "appProtocol": "grpc"
    }
  • URI de Imagen: apunte a cualquier IronPdfEngine de nosotros. Por ejemplo, "ironsoftwareofficial/ironpdfengine:2024.1.20" (de DockerHub)
  • Permisos AWS & Red son su responsabilidad
  • Habilitar Amazon CloudWatch es recomendado. (Habilitar el registro)
  • Orden de inicio del contenedor es necesario si desea desplegar su contenedor de aplicación en la misma definición de tarea.
  1. Ejecute una definición de tarea. Podría ejecutar una definición de tarea como Tarea o Servicio. Siga esta guía sobre crear un servicio usando la consola.

Ajustes recomendados:

  • Tipo de lanzamiento: AWS Fargate
  • IP pública: Activada para pruebas y Desactivada para producción. La seguridad y la red de AWS son su responsabilidad.
  1. ¡Disfrute! ¡El docker de IronPdfEngine está en marcha en su AWS!

Por favor notaLa escalabilidad horizontal no está soportada. Por favor, consulte la Limitación de IronPdfEngine para más información.


Implementar IronPdfEngine en Azure Container Instances

Prerrequisitos

Configuración

  1. Cree un Contenedor de Azure. Siga esta guía rápida sobre el despliegue de una instancia de contenedor en Azure usando el portal de Azure.

Ajustes recomendados:

  • Fuente de Imagen: Otro registro
  • Imagen: ironsoftwareofficial/ironpdfengine:2024.1.20 (de Docker Hub)
  • Tipo de OS: Linux
  • Tamaño: Mínimo de 1 vCPU y 2 GiB de memoria, o superior
  • Puerto: TCP Puerto 33350
  1. ¡Disfrute! ¡El docker de IronPdfEngine está en marcha en sus Azure Container Instances!

Por favor notaLa escalabilidad horizontal no está soportada. Por favor, consulte la Limitación de IronPdfEngine para más información.


Obtener IronPdfEngine en la galería pública de AWS ECR

Requisito previo

  • Docker debe estar instalado.

Configuración

  1. Vaya a https://gallery.ecr.aws/v1m9w8y1/ironpdfengine
  2. Extraiga la imagen v1m9w8y1/ironpdfengine
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine
SHELL

O extraiga la versión específica (recomendado)

docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine:2023.12.6
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine:2023.12.6
SHELL
  1. Ejecute el contenedor ironpdfengine.

Este comando creará un contenedor y lo ejecutará en segundo plano con el puerto 33350

docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
SHELL

Aprenda a configurar el cliente IronPdf para utilizar IronPdfEngine navegando a la sección "Actualizar el Código para Usar IronPdfEngine."


Obtenga IronPdfEngine desde el Marketplace

Para ayudarle a comenzar rápidamente, hemos configurado IronPdfEngine en los Marketplace de Azure y AWS.

Azure Marketplace

Azure Marketplace

Configuración

  1. Go to IronPDF Docker Container on Azure Marketplace. Click on the "Get It Now" and "Continue."
  2. Complete the "Basics", "Cluster Details", and "Application Details" to create the Kubernetes service.
  3. Once the deployment has completed, navigate to the left sidebar and select Kubernetes resources> Run command. Run the following command:
kubectl get services
kubectl get services
SHELL
Servicio Kubernetes: ejecutar comando
Con la información de IP EXTERNA y PUERTO(S), puede configurar la conexión IronPDFEngine según corresponda. ```csharp :path=/static-assets/pdf/content-code-examples/how-to/pull-run-ironpdfengine-azure-marketplace.cs ``` ### Mercado de AWS
aws marketplace
**Prerequisites** * Docker debe estar instalado. * AWS CLI must be installed and logged in. **Configuración** 1. Go to [IronPdfEngine on AWS marketplace](https://aws.amazon.com/marketplace/pp/prodview-t66wmni5ri7ve?sr=0-1&ref_=beagle&applicationId=AWSMPContessa). Click on the 'Continue to Subscribe.' 3. Accept the Terms.
Accept EULA
4. Continue to Configuration.
Subscribe complete
5. Pull the ironpdfengine image. This step will show you a command to pull the ironpdfengine image.
Launch this software
For Example: ```shell aws ecr get-login-password \ --region us-east-1 | docker login \ --username AWS \ --password-stdin 000000000000.dkr.ecr.us-east-1.amazonaws.com CONTAINER_IMAGES="000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15" for i in $(echo $CONTAINER_IMAGES | sed "s/,/ /g"); do docker pull $i; done ``` 6. Ejecute el contenedor ironpdfengine. Este comando creará un contenedor y lo ejecutará en segundo plano con el puerto 33350. ```shell docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15 ``` ## Comprobación del estado de IronPdfEngine Verificar el estado de su Contenedor Docker es crucial para asegurar la fiabilidad y disponibilidad en un entorno de producción. La capacidad de verificar el contenedor Docker de IronPdfEngine permite a los desarrolladores reiniciar el servicio si falla, así como escalar los recursos si la demanda aumenta, junto con el monitoreo de una aplicación continua. Para verificar el estado de su IronPdfEngine, podemos enviar una solicitud gRPC al mismo puerto de IronPdfEngine (por defecto, sería 33350) para verificar si obtenemos una respuesta. ### Comprobación del estado con gRPC IronPdfEngine se adhiere al patrón estándar de control de salud gRPC, utilizando la siguiente estructura de protocolo. ```protobuf message HealthCheckRequest { string service = 1; // Name of the service to check (e.g., "IronPdfEngine") } ``` Dado que estamos comprobando IronPdfEngine, reemplazamos el nombre del servicio con `IronPdfEngine`. Aquí hay un ejemplo usando JavaScript con [Postman](https://www.postman.com) para enviar una solicitud gRPC al servicio local de IronPdfEngine con el número predeterminado de 33350.
Estado
Como puede ver en la respuesta, el estado es `SERVING`, lo que indica que el servicio está activo y en funcionamiento. Si el contenedor no está en buen estado, el estado sería `NOT_SERVING`. ### Comprobación del estado con la configuración de Kubernetes Para configuraciones de Kubernetes, podemos usar lo siguiente para verificar si el servicio está saludable o no. ```yaml livenessProbe: exec: command: - /bin/grpc_health_probe - -addr=:33350 - -rpc-timeout=5s ```

Preguntas Frecuentes

¿Cómo puedo convertir HTML a PDF en C# usando Docker?

Puede utilizar la configuración Docker de IronPDF para convertir HTML a PDF en C#. Despliegue IronPdfEngine en un contenedor Docker y use métodos como RenderHtmlAsPdf para lograr esto.

¿Cuáles son los beneficios de usar IronPdfEngine en Docker?

Usar IronPdfEngine en Docker ofrece un entorno preinstalado y confiable, reduciendo problemas de dependencia y asegurando que todos los componentes necesarios, como los binarios de Chrome y Pdfium, estén disponibles.

¿Cómo configuro IronPdfEngine con Docker Compose?

Cree un archivo docker-compose.yml y defina los servicios y redes. Asegure que IronPdfEngine inicie antes que su aplicación usando la directiva depends_on.

¿Qué pasos se requieren para implementar IronPdfEngine en AWS ECS?

Para desplegar en AWS ECS, cree un clúster ECS, defina una definición de tarea y use AWS Fargate para asignaciones de recursos. Luego, ejecute su tarea o servicio para lanzar IronPdfEngine.

¿Cómo puedo descargar IronPdfEngine desde la AWS ECR Public Gallery?

Acceda a la AWS ECR Public Gallery, encuentre la imagen de IronPdfEngine y siga los comandos proporcionados para descargar y ejecutar el contenedor.

¿Es posible usar IronPdfEngine desde el Mercado de Azure?

Sí, IronPdfEngine está disponible en el Mercado de Azure. Puede seguir las instrucciones de configuración en la página del Mercado para implementar el contenedor Docker.

¿Qué limitaciones debo tener en cuenta al usar IronPdfEngine?

IronPdfEngine no soporta el escalado horizontal. Es esencial considerar esta limitación al planificar su implementación para garantizar que cumple con las necesidades de su aplicación.

¿Cómo puedo manejar eficientemente las tareas de generación y manipulación de PDF con Docker?

Implemente IronPdfEngine en un contenedor Docker para gestionar eficientemente las tareas de generación y manipulación de PDF, aprovechando las capacidades de Docker para manejar dependencias y asegurar un ambiente consistente.

¿Cuáles son los requisitos para implementar IronPdfEngine en Azure Container Instances?

Para implementar en Azure Container Instances, asegúrese de tener una cuenta de Azure y descargue la imagen Docker de IronPdfEngine para su implementación.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 16,685,821 | Versión: 2025.12 recién lanzado