将 IronPDF 添加到现有 Docker 容器中
IronPDF for .NET Standard 现已全面支持 Docker,包括适用于 Linux 和 Windows 的 Azure Docker 容器。
您是否希望将 IronPDF 作为独立的 Docker 容器进行部署? 了解更多关于 IronPdfEngine 教程指南的信息。
为何要在 Azure 上使用 Docker?
除了出色的 Enterprise 可扩展性外,Azure 上的 Docker 容器还比常规 WebApp 拥有更多权限。这使得 SVG 字体的渲染成为可能,因为系统已启用对 GDI+ 图形的访问权限。
IronPDF 和 Linux Primer
如果您对 Docker 与 .NET 的结合尚不熟悉,我们推荐这篇关于配置 Docker 调试以及与 Visual Studio 项目集成的优秀文章。
我们强烈建议您阅读《IronPDF Linux 安装与兼容性指南》。
推荐的 Linux Docker 发行版
我们建议使用以下最新的 64 位 Linux 操作系统,以便"轻松配置"IronPDF。
- Ubuntu 24 (Noble)
- Ubuntu 22
- Ubuntu 20
- Ubuntu 18
- Debian 11
- Debian 10
- CentOS 8
- Amazon AWS Linux 2 阅读《IronPDF AWS Lambda 设置指南》
我们建议使用 Microsoft 官方的 .NET Docker 镜像。 部分其他 Linux 发行版也受支持,但可能需要手动配置。 请参阅我们的《Linux 手动设置》指南。
IronPDF Linux Docker 安装
使用针对 Linux 优化的 NuGet 包
我们建议使用 IronPdf.Linux NuGet 包,而非常规的 IronPDF 包,以节省磁盘空间,并避免在启动 Docker 实例时下载资源。 别担心,在 Windows 或 macOS 上开发时它依然有效——只是针对 Linux 进行了优化。
Install-Package IronPdf.Linux
另一种解决方案是在常规的 IronPDF NuGet 包基础上,直接添加 IronPdf.Native.Chrome.Linux。
Install-Package IronPdf.Native.Chrome.Linux
避免自动依赖项安装
许多用户反馈,当 LinuxAndDockerDependenciesAutoConfig 设置为 false 时,在 Linux 和 Docker 环境下的运行效果更佳。 这是因为这些先决条件已由 Docker 文件中的 apt-get 风格的包管理器安装完毕。
// Disable automatic configuration of Linux and Docker dependencies
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
// Disable automatic configuration of Linux and Docker dependencies
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
' Disable automatic configuration of Linux and Docker dependencies
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = False
禁用 GPU 加速
Linux Docker 容器通常无法访问 GPU。 GPU 加速默认处于禁用状态。 如果您已启用 ChromeGpuModes.Enabled,我们强烈建议您在 Docker 部署中将其禁用:
// Disable GPU acceleration for Docker environments
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Disable GPU acceleration for Docker environments
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
' Disable GPU acceleration for Docker environments
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Ubuntu Linux Docker 文件
Ubuntu 24 搭配 .NET 10
Ubuntu 24.04 (Noble) 采用了 64 位 time_t 过渡包,因此部分库名称与早期 Ubuntu 版本有所不同(例如,libasound2t64 代替 libasound2)。
# Build stage
FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build
WORKDIR /app
COPY *.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /app/publish
# Runtime stage
FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble AS runtime
# Install IronPDF dependencies for Ubuntu 24.04 Noble (64-bit transition libraries)
RUN apt-get update && apt-get install -y \
libasound2t64 \
libatk1.0-0t64 \
libatk-bridge2.0-0t64 \
libcairo2 \
libcups2t64 \
libdbus-1-3 \
libdrm2 \
libexpat1 \
libfontconfig1 \
libgbm1 \
libglib2.0-0t64 \
libgtk-3-0t64 \
libnspr4 \
libnss3 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libx11-6 \
libxcb1 \
libxcomposite1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxkbcommon0 \
libxrandr2 \
fonts-liberation \
wget \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "YourApp.dll"]
Ubuntu 24 搭载 .NET 8
.NET 8 LTS 与 Ubuntu 24.04 LTS 的组合是常见的生产环境配置。 64 位过渡库的名称保持不变。
# Build stage
FROM mcr.microsoft.com/dotnet/sdk:8.0-noble AS build
WORKDIR /app
COPY *.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /app/publish
# Runtime stage
FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble AS runtime
# Install IronPDF dependencies for Ubuntu 24.04 Noble (64-bit transition libraries)
RUN apt-get update && apt-get install -y \
libasound2t64 \
libatk1.0-0t64 \
libatk-bridge2.0-0t64 \
libcairo2 \
libcups2t64 \
libdbus-1-3 \
libdrm2 \
libexpat1 \
libfontconfig1 \
libgbm1 \
libglib2.0-0t64 \
libgtk-3-0t64 \
libnspr4 \
libnss3 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libx11-6 \
libxcb1 \
libxcomposite1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxkbcommon0 \
libxrandr2 \
fonts-liberation \
wget \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "YourApp.dll"]
Ubuntu 22 搭配 .NET 8
Ubuntu 22 搭配 .NET 7
Ubuntu 20 搭配 .NET 6
Ubuntu 20 搭载 .NET 5
Ubuntu 20 搭载 .NET 3.1 LTS
Ubuntu 18 搭配 .NET 3.1 LTS
Debian Linux Docker 镜像文件
Debian 12 搭配 .NET 8
Debian 11 搭配 .NET 7
搭载 .NET 6 的 Debian 11
搭载 .NET 5 的 Debian 11
Debian 11 搭配 .NET 3.1 LTS
搭载 .NET 5 的 Debian 10
搭载 .NET 3.1 LTS 的 Debian 10
Alpine Linux Docker 镜像文件
不支持在 Alpine Linux 上运行 IronPDF。 我们虽愿如此,但无法做到。 坦率地说,我们很喜欢Alpine,希望这个项目能够持续发展壮大。 截至 2023 年,Alpine 仍在使用过时的"musl"C 语言库,这使得 Chromium 开发者目前尚无法完全支持该操作系统。
在 .NET 6 中使用 Alpine Docker 与 IronPdfEngine
IronPDF 提供了一个包含所有 IronPDF 功能的容器镜像。 这使得在 Alpine 上运行的项目能够通过连接 IronPdfEngine 容器来访问 IronPD 的功能。
步骤 1:拉取并运行 IronPDF Engine Docker 镜像
在终端中执行以下命令,以拉取并运行 IronPDF Engine Docker 镜像:
# Pull the IronPDF Engine Docker Image
docker pull ironsoftwareofficial/ironpdfengine
# Pull the IronPDF Engine Docker Image
docker pull ironsoftwareofficial/ironpdfengine
# Run the IronPDF Engine Docker container
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
# Run the IronPDF Engine Docker container
docker run -d -p 33350:33350 ironsoftwareofficial/ironpdfengine
步骤 2:设置控制台应用程序
创建一个针对 .NET 6 的新控制台应用程序。使用 NuGet 包管理器安装 IronPdf.Slim NuGet 包。
Windows Docker 文件
Windows Docker 容器在 Azure 上正变得越来越受欢迎,因为它们提供了更高的性能和可扩展性,并赋予开发人员更多配置实例的权限。
在 Azure 上的 Docker 容器(Windows 或 Linux)中,IronPDF 实际上能呈现更出色的文本渲染效果,这是因为它能够更深入地访问图形库和虚拟显卡。
《Visual Studio Container Tools for Docker》这篇文章是一份非常棒的入门指南。
这是一个适用于 .NET Core 3.1 的 Windows 容器 Dockerfile 示例
Windows Server 2019 .NET 6.0
预配置的 Windows 容器包含运行 IronPDF 所需的所有依赖项。
访问 Docker 仓库,探索更多用于运行 IronPDF 的预配置镜像。
常见问题解答
如何将 .NET 库集成到 Docker 容器中生成 PDF?
您可以通过使用 Microsoft 的官方 Docker 镜像和 IronPdf.Linux NuGet 包(用于 Linux)或预配置的 Windows Docker 容器(用于 Windows 环境)将 IronPDF 这个 .NET PDF 生成库集成到 Docker 容器中。
在 Azure 上使用 Docker 容器进行 PDF 操作有什么好处?
在 Azure 上使用 Docker 容器进行 PDF 操作提供了增强的企业级可扩展性和比常规 WebApps 更多的权限。此设置非常适合启用高级功能,例如通过 GDI+ 图形访问渲染 SVG 字体。
哪些 Linux 发行版最适合在 Docker 中运行 .NET PDF 库?
最适合在 Docker 中运行 IronPDF 的 Linux 发行版包括 Ubuntu 18/20/22、Debian 10/11、CentOS 8 和 Amazon AWS Linux 2,因为它们提供简单的配置和兼容性。
如何优化 Linux Docker 容器中 .NET PDF 库的性能?
要优化性能,请使用 IronPdf.Linux 包,禁用自动依赖安装,并通过配置 IronPdf.Installation.ChromeGpuMode 为 IronPdf.Engines.Chrome.ChromeGpuModes.Disabled 关闭 GPU 加速。
IronPDF 可以在 Docker 容器内的 Alpine Linux 上运行吗?
由于 'musl' 库不兼容,IronPDF 不原生支持 Alpine Linux。要在 Alpine Linux 上使用 IronPDF,可以通过 IronPDFEngine Docker 容器运行它。
使用预配置的 Docker 容器运行 .NET 库的目的是什么?
预配置的 Docker 容器提供了运行 IronPDF 所需的所有依赖,以确保高性能和可扩展性,特别是在如 Azure 这样的平台上部署时。
如何为 .NET 应用程序在 Docker 中配置 .NET PDF 库?
您可以通过将 IronPDF 与 Linux 和 Windows Docker 容器集成,实现微服务架构中的强大 PDF 功能,来为 .NET 应用程序配置 IronPDF。
部署 .NET 库在 Docker 中的推荐设置步骤是什么?
推荐步骤包括使用诸如 IronPdf.Linux 的 Linux 优化包,禁用自动依赖安装,以及在 Docker 环境的运行时预初始化 IronPDF 以防止延迟。
我如何在运行 .NET 6.0 的 Windows Server 2019 Docker 容器中设置 .NET PDF 库?
通过使用包含所有必要依赖和配置来运行 IronPDF 的预配置 Dockerfile,在 Windows Server 2019 Docker 容器中设置 .NET PDF 库与 .NET 6.0。
为什么在 Docker 设置中对于 .NET 库要禁用 GPU 加速?
禁用 Docker 中 IronPDF 的 GPU 加速可以通过避免在资源有限的 GPU 环境中可能发生的图形相关问题来实现更流畅的部署和性能。









