Como usar o mecanismo IronPDF no Docker | IronPDF

Execute o IronPDF como um contêiner remoto.

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

O IronPdfEngine é um serviço independente capaz de criar, escrever, editar e ler PDFs. O IronPDF Docker está pronto para executar serviços Docker com versões compatíveis do IronPDF (v2023.2.x e superiores). Isso ajudará os desenvolvedores a eliminar problemas de implantação que possam estar enfrentando com o IronPDF.

Por que executar o IronPDF como um contêiner separado é uma boa ideia

O IronPDF requer os binários do Chrome e do Pdfium para funcionar, e ambos possuem um tamanho de arquivo enorme (centenas de MB). Também requer a instalação de diversas dependências na máquina.

Ao utilizar este método, seu cliente ocupará apenas uma fração do tamanho (em MB).

Evite problemas de implantação

Configurar o ambiente/container para incluir todas as dependências corretamente pode ser um desafio. Ao usar o contêiner Docker do IronPDF, o IronPDF já vem pré-instalado e com funcionamento garantido, evitando todas as dores de cabeça com implantação e dependências.

Versões

A tag Docker do IronPDF é baseada na versão do próprio IronPdfEngine. Não é a mesma versão do produto IronPDF.

Cada versão do IronPDF terá sua própria versão associada do IronPdfEngine. O número da versão deve corresponder à versão do IronPDF Docker.

Por exemplo, a versão IronPDF for Java requer a versão 2023.2.1 do IronPdfEngine. Não é possível usar versões incompatíveis do IronPdfEngine e do IronPDF.


Como usar o IronPDF no Docker

Instale o IronPDF

Adicione o pacote NuGet IronPdf.Slim ao seu projeto.

NuGet​

Nota: Os pacotes IronPdf, IronPdf.Linux e IronPdf.MacOs contêm IronPdf.Slim.

Para reduzir o tamanho do seu aplicativo, recomendamos instalar apenas o IronPdf.Slim. O pacote IronPdf.Native.Chrome.xxx não é mais usado, portanto você pode removê-lo do seu projeto.

Determine a versão do contêiner necessária.

Por padrão, a versão do IronPDF para Docker corresponderá à versão atual do IronPDF no NuGet. Você pode usar o código abaixo para verificar a versão manualmente:

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

Configurar o IronPDF para contêiner Docker

Sem Docker Compose

Execute o contêiner Docker usando a versão da etapa anterior.

  • O Docker precisa estar instalado.

Configurar

  1. Acessehttps://hub.docker.com/r/ironsoftwareofficial/ironpdfengine
  2. Baixe a imagem mais recente do ironsoftwareofficial/ironpdfengine.
docker pull ironsoftwareofficial/ironpdfengine
docker pull ironsoftwareofficial/ironpdfengine
SHELL

Ou baixe a versão específica (recomendado).

docker pull ironsoftwareofficial/ironpdfengine:2025.3.6
docker pull ironsoftwareofficial/ironpdfengine:2025.3.6
SHELL
  1. Execute o contêiner ironsoftwareofficial/ironpdfengine.

Este comando criará um contêiner e o executará em segundo plano na porta 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

Com Docker Compose

A chave é configurar uma rede Docker que permita que o IronPdfEngine e seu aplicativo se comuniquem. Defina 'depends_on' para garantir que o IronPdfEngine esteja em execução antes que seu aplicativo seja iniciado.

Configurar

  1. Comece criando um arquivo docker-compose.yml. Configure seu arquivo Docker Compose usando o seguinte modelo:
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. Defina o endereço do IronPdfEngine dentro do seu aplicativo (myconsoleapp) para "myironpdfengine:33350"
  2. Execute o docker compose.
docker compose up --detach --force-recreate --remove-orphans --timestamps
docker compose up --detach --force-recreate --remove-orphans --timestamps
SHELL

Conecte-se ao IronPdfEngine

Execute seu código IronPDF; Seu aplicativo agora se comunica com o IronPdfEngine no 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");
$vbLabelText   $csharpLabel

Tipo de conexão

Existem vários IronPdfConnectionType que você pode atribuir dependendo do tipo de conexão que deseja fazer.

Segue uma lista dos properties disponíveis:

LocalExecutable : Para conectar-se a um "servidor" IronPdfEngine que esteja executando um arquivo executável em sua máquina local, usamos esta opção. Um exemplo rápido seria um aplicativo de faturamento WinForms que gera PDFs localmente sem depender de serviços em nuvem.

Docker : Esta opção deve ser usada ao tentar conectar-se a um contêiner Docker, seja localmente ou na nuvem.

RemoteServer : Esta opção é usada para o IronPdfEngine na nuvem. Isso se conecta a uma instância do IronPdfEngine hospedada na nuvem (por exemplo, Docker) por meio do protocolo HTTP ou HTTPS. Note que, como se trata de uma conexão com um servidor remoto, o URL completo é necessário (incluindo o protocolo HTTP ou HTTPS).

Personalizado : Para controle e personalização completos da conexão, você pode usar esta opção. Esta opção utiliza o seu Grpc.Core.ChannelBase personalizado em vez das outras opções definidas acima. Os desenvolvedores podem criar um novo canal criando um novo objeto Grpc.Core.Channel ou usando Grpc.Net.Client.GrpcChannel.ForAddress(System.String) para personalizar e ter controle total sobre o canal gRPC.

.NET Framework com NetFrameworkChannel

Para o .NET Framework, precisamos de uma configuração diferente porque o gRPC funciona de maneira distinta em projetos .NET Framework. Para que este método funcione, certifique-se de que o pacote NuGet Grpc.Core esteja instalado. Para esta configuração específica, utilizaremos um canal gRPC personalizado derivado de Grpc.Core.ChannelBase .

Vamos examinar este exemplo, onde implementaremos o canal de conexão para criar e salvar um PDF usando o IronPDFEngine.

Como o gRPC funciona de forma diferente em projetos .NET Framework, se o código a seguir não funcionar, tente remover o prefixo <http> ou <https> do endereço.

AvisoObserve que este pdf.Dispose é necessário neste 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();
$vbLabelText   $csharpLabel

Método alternativo com WithCustomChannel

Um método alternativo seria utilizar o método WithCustomChannel fornecido pelo IronPdf.GrpcLayer.

O WithCustomChannel recebe dois parâmetros, o customChannel, que é o seu canal gRPC personalizado, e o metadata. O parâmetro metadata é opcional e está definido como null por padrão.

: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();
$vbLabelText   $csharpLabel

Implante o IronPdfEngine no AWS ECS.

Pré-requisitos

Configurar

  1. Crie um cluster ECS. Siga este guia para criar um cluster para os tipos de inicialização Fargate e External usando o console .
  2. Crie uma definição de tarefa. Siga este guia para criar uma definição de tarefa usando o console .

Configurações recomendadas:

  • AWS Fargate Recomenda-se um mínimo de 1 vCPU com 2 GB de RAM. Dependendo da sua carga de trabalho, se você estiver trabalhando com PDFs contendo mais de 10 páginas ou enfrentando um grande volume de solicitações, selecione um plano superior.
  • Modo de rede : awsvpc
  • Mapeamento de portas :
    {
      "containerPort": 33350,
      "hostPort": 33350,
      "protocol": "tcp",
      "appProtocol": "grpc"
    }
  • URI da imagem : aponte para qualquer IronPdfEngine fornecido por nós. Por exemplo, "ironsoftwareofficial/ironpdfengine:2024.1.20" (do DockerHub)
  • As permissões e a configuração de rede da AWS são de sua responsabilidade. É recomendável ativar o Amazon CloudWatch . (Enable logging)
  • A ordem de inicialização do contêiner é necessária se você quiser implantar o contêiner do seu aplicativo na mesma definição de tarefa.
  1. Execute uma definição de tarefa. Você pode executar uma definição de tarefa como uma Tarefa ou um Serviço . Siga este guia sobre como criar um serviço usando o console .

Configurações recomendadas:

  • Tipo de lançamento: AWS Fargate
  • IP público: ativado para testes e desativado para produção. A segurança e a rede AWS são de sua responsabilidade.
  1. Aproveite! O contêiner Docker do IronPdfEngine está instalado e funcionando na sua AWS!

ObserveO dimensionamento horizontal não é suportado. Consulte as Limitações do IronPdfEngine para obter mais informações.


Implantar o IronPdfEngine em instâncias de contêiner do Azure

Pré-requisitos

Configurar

  1. Crie um contêiner do Azure. Siga este guia de início rápido sobre como implantar uma instância de contêiner no Azure usando o portal do Azure .

Configurações recomendadas:

  • Fonte da imagem : Outro registro
  • Imagem : ironsoftwareofficial/ironpdfengine:2024.1.20 (do Docker Hub)
  • Tipo de sistema operacional : Linux
  • Tamanho : Mínimo de 1 vCPU e 2 GiB de memória, ou superior.
  • Porta : Porta TCP 33350
  1. Aproveite! O contêiner Docker do IronPdfEngine já está em execução em suas instâncias de contêiner do Azure!

ObserveO dimensionamento horizontal não é suportado. Consulte as Limitações do IronPdfEngine para obter mais informações.


Obtendo o IronPdfEngine na Galeria Pública do AWS ECR

Pré-requisito

  • O Docker precisa estar instalado.

Configurar

  1. Acessehttps://gallery.ecr.aws/v1m9w8y1/ironpdfengine
  2. Extraia a imagem v1m9w8y1/ironpdfengine.
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine
docker pull https://gallery.ecr.aws/v1m9w8y1/ironpdfengine
SHELL

Ou baixe a versão 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. Execute o contêiner do ironpdfengine.

Este comando criará um contêiner e o executará em segundo plano na porta 33350.

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

Aprenda como configurar o cliente IronPdf para utilizar o IronPdfEngine navegando até a seção " Atualizar o código para usar o IronPdfEngine ".


Obtenha o IronPdfEngine no Marketplace.

Para ajudar você a começar rapidamente, configuramos o IronPdfEngine nos marketplaces da Azure e da AWS.

Azure Marketplace

Azure Marketplace

Configurar

  1. Acesse o contêiner Docker do IronPDF no Azure Marketplace . Clique em "Obter agora" e "Continuar".
  2. Conclua as seções "Informações básicas", "Detalhes do cluster" e "Detalhes do aplicativo" para criar o serviço Kubernetes.
  3. Após a conclusão da implantação, navegue até a barra lateral esquerda e selecione Recursos do Kubernetes > Executar comando. Execute o seguinte comando:
kubectl get services
kubectl get services
SHELL
Serviço Kubernetes - executar comando

Com as informações de IP externo e porta(s), você pode configurar a conexão do IronPDFEngine adequadamente.

:path=/static-assets/pdf/content-code-examples/how-to/pull-run-ironpdfengine-azure-marketplace.cs
using IronPdf;
using IronPdf.GrpcLayer;

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

IronPdfConnectionConfiguration configuration = new IronPdfConnectionConfiguration();
configuration.ConnectionType = IronPdfConnectionType.RemoteServer;
configuration.Host = "http://48.216.143.233";
configuration.Port = 80;
IronPdf.Installation.ConnectToIronPdfHost(configuration);

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

AWS Marketplace

marketplace da AWS

Pré-requisitos

  • O Docker precisa estar instalado.
  • É necessário que a AWS CLI esteja instalada e que você tenha feito login.

Configurar

  1. Acesse o IronPdfEngine no marketplace da AWS . Clique em "Continuar para assinar".

  2. Aceite os Termos.
Aceitar o EULA
  1. Continue para a Configuração.
Assinar completamente
  1. Obtenha a imagem do ironpdfengine. Esta etapa mostrará um comando para obter a imagem do ironpdfengine.
Inicie este software

Por exemplo:

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
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
SHELL
  1. Execute o contêiner ironpdfengine. Este comando criará um contêiner e o executará em segundo plano na porta 33350.
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15
docker run -d -p 33350:33350 000000000000.dkr.ecr.us-east-1.amazonaws.com/iron-software/ironpdfengine:2024.1.15
SHELL

Verificação de integridade do IronPdfEngine

Verificar a integridade do seu contêiner Docker é crucial para garantir confiabilidade e disponibilidade em um ambiente de produção. A capacidade de verificar o contêiner Docker do IronPdfEngine permite que os desenvolvedores reiniciem o serviço em caso de falha, além de dimensionar os recursos conforme a demanda aumenta, juntamente com o monitoramento contínuo da aplicação.

Para verificar o estado do seu IronPdfEngine, podemos enviar uma solicitação gRPC para a mesma porta do IronPdfEngine (por padrão, seria a 33350) para verificar se recebemos uma resposta.

Verificação de saúde com gRPC

O IronPdfEngine segue o padrão de verificação de integridade gRPC padrão, utilizando a seguinte estrutura de protocolo.

message HealthCheckRequest {
 string service = 1; // Name of the service to check (e.g., "IronPdfEngine")
}

Como estamos verificando o IronPdfEngine, substituímos o nome do serviço por IronPdfEngine.

Aqui está um exemplo usando JavaScript com o Postman para enviar uma solicitação gRPC ao serviço local IronPdfEngine com o número padrão 33350.

Status

Como você pode ver na resposta, o status é SERVING, indicando que o serviço está ativo e funcionando. Se o contêiner não estiver íntegro, a resposta de status será NOT_SERVING.

Verificação de integridade com configuração do Kubernetes

Para configurações do Kubernetes, podemos usar o seguinte para verificar se o serviço está íntegro ou não.

 livenessProbe:
          exec:
            command:
            - /bin/grpc_health_probe
            - -addr=:33350
            - -rpc-timeout=5s
 livenessProbe:
          exec:
            command:
            - /bin/grpc_health_probe
            - -addr=:33350
            - -rpc-timeout=5s
YAML

Perguntas frequentes

Como posso converter HTML para PDF em C# usando Docker?

Você pode usar a configuração Docker do IronPDF para converter HTML em PDF em C#. Implante o IronPDFEngine em um contêiner Docker e use métodos como RenderHtmlAsPdf para realizar essa conversão.

Quais são os benefícios de usar o IronPDFEngine no Docker?

Utilizar o IronPDFEngine no Docker oferece um ambiente pré-instalado e confiável, reduzindo problemas de dependência e garantindo que todos os componentes necessários, como os binários do Chrome e do Pdfium, estejam disponíveis.

Como faço para configurar o IronPDFEngine com o Docker Compose?

Crie um arquivo docker-compose.yml e defina os serviços e redes. Certifique-se de que o IronPDFEngine seja iniciado antes da sua aplicação usando a diretiva depends_on .

Quais são os passos necessários para implantar o IronPDFEngine no AWS ECS?

Para implantar no AWS ECS, crie um cluster ECS, defina uma definição de tarefa e use o AWS Fargate para alocação de recursos. Em seguida, execute sua tarefa ou serviço para iniciar o IronPDFEngine.

Como posso obter o IronPDFEngine da Galeria Pública do AWS ECR?

Acesse a Galeria Pública do AWS ECR, encontre a imagem IronPDFEngine e siga os comandos fornecidos para baixar e executar o contêiner.

É possível usar o IronPDFEngine a partir do Azure Marketplace?

Sim, o IronPDFEngine está disponível no Azure Marketplace. Você pode seguir as instruções de configuração na página do Marketplace para implantar o contêiner Docker.

Quais são as limitações que devo ter em mente ao usar o IronPDFEngine?

O IronPDFEngine não suporta escalonamento horizontal. É essencial considerar essa limitação ao planejar sua implantação para garantir que ela atenda às necessidades do seu aplicativo.

Como posso lidar de forma eficiente com tarefas de geração e manipulação de PDFs usando o Docker?

Implante o IronPDFEngine em um contêiner Docker para gerenciar com eficiência as tarefas de geração e manipulação de PDFs, aproveitando os recursos do Docker para lidar com dependências e garantir um ambiente consistente.

Quais são os requisitos para implantar o IronPDFEngine no Azure Container Instances?

Para implantar no Azure Container Instances, certifique-se de ter uma conta do Azure e baixe a imagem Docker do IronPDFEngine para implantação.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 17,803,474 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.