IRONSOFTWAREHOME

在 Docker 容器中设置 IronXL

Curtis Chau
Curtis Chau
Updated: 2026年4月22日

使用 C# 读取、编辑和创建 Excel 电子表格文件吗?

IronXL 现在完全支持 Docker,包括适用于 Linux 和 Windows 的 Azure Docker 容器。

DockerAzureLinuxAmazonWindows

为什么使用 Docker?

Docker 使开发人员能够轻松地将任何应用程序打包、发布和运行为轻量级、可移植、自给自足的容器,并且可以在几乎任何地方运行。

IronXL 和 Linux 入门指南

如果您是第一次接触 Docker 与 .NET,我们推荐您阅读这篇关于设置 Docker 调试以及如何将其与 Visual Studio 项目集成的优秀文章。 https://docs.microsoft.com/en-us/visualstudio/containers/edit-and-refresh?view=vs-2019

我们还强烈建议您阅读我们的IronXL Linux 安装和兼容性指南

推荐的 Linux Docker 发行版

我们推荐最新的64位 Linux 操作系统以便"轻松配置" IronPDF。

  • Ubuntu 20
  • Ubuntu 18
  • Debian 11
  • Debian 10 [目前是 Microsoft Azure 的默认 Linux 发行版] CentOS 7
  • CentOS 8

我们建议使用微软官方的 Docker 镜像。 其他Linux发行版部分支持,但可能需要使用apt-get手动配置。 请参阅我们的"Linux手动设置"指南。

本文档中包含适用于 Ubuntu 和 Debian 的 Docker 文件:

IronXL Linux Docker 安装要点

使用我们的 NuGet 包

我们建议使用IronXL NuGet 包。 它在 Windows、macOS 和 Linux 系统上进行开发时均可正常工作。

PM > Install-Package IronXL.Excel

Ubuntu Linux Dockerfiles

DockerUbuntu

Ubuntu 20 with .NET 5

# Base runtime image (Ubuntu 20 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:5.0-focal AS base
WORKDIR /app

# Base development image (Ubuntu 20 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Text

Ubuntu 20 with .NET 3.1 LTS

# Base runtime image (Ubuntu 20 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:3.1-focal AS base
WORKDIR /app

# Base development image (Ubuntu 20 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1-focal AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Text

Ubuntu 18 with .NET 3.1 LTS

# Base runtime image (Ubuntu 18 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:3.1-bionic AS base
WORKDIR /app

# Base development image (Ubuntu 18 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1-bionic AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Text

Debian Linux DockerFiles

Debian 11 with .NET 5

# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/aspnet:5.0-bullseye-slim AS base
WORKDIR /app

# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:5.0-bullseye-slim AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Text

Debian 11 with .NET 3.1 LTS

# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/aspnet:3.1-bullseye-slim AS base
WORKDIR /app

# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1-bullseye-slim AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Text

Debian 10 with .NET 5

# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base
WORKDIR /app

# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Text

Debian 10 with .NET 3.1 LTS

# Base runtime image (Debian 10 with .NET runtime)
FROM mcr.microsoft.com/dotnet/runtime:3.1 AS base
WORKDIR /app

# Base development image (Debian 10 with .NET SDK)
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish project
FROM build AS publish
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Text

CentOS 7 with .NET 3.1 LTS

# Base runtime image (CentOS 7)
FROM centos:7 AS base
WORKDIR /app

# Install necessary packages
RUN yum install sudo -y
RUN sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
RUN sudo yum install dotnet-sdk-3.1 -y
RUN sudo yum install aspnetcore-runtime-3.1 -y
RUN sudo yum install dotnet-runtime-3.1 -y
RUN sudo yum update -y

WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish project
FROM base AS publish
WORKDIR /src
COPY . .
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Text

CentOS 8 搭配 .NET 3.1 LTS

# Base runtime image (CentOS 8)
FROM centos:8 AS base
WORKDIR /app

# Install necessary packages
RUN yum install sudo -y
RUN sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
RUN sudo yum install dotnet-sdk-3.1 -y
RUN sudo yum install aspnetcore-runtime-3.1 -y
RUN sudo yum install dotnet-runtime-3.1 -y
RUN sudo yum update -y

WORKDIR /src

# Restore NuGet packages
COPY ["Example/Example.csproj", "Example/"]
RUN dotnet restore "Example/Example.csproj"

# Build project
COPY . .
WORKDIR "/src/Example"
RUN dotnet build "Example.csproj" -c Release -o /app/build

# Publish project
FROM base AS publish
WORKDIR /src
COPY . .
RUN dotnet publish "Example.csproj" -c Release -o /app/publish

# Run app
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Example.dll"]
Text

常见问题解答

如何在 Docker 容器中设置 IronXL?

要在 Docker 容器中设置 IronXL,您需要使用与 Windows、macOS 和 Linux 兼容的 IronXL NuGet 包。使用命令安装它:dotnet add package IronXL。对于 Docker,将包集成到您的 Dockerfile 中,并确保您的应用程序可以访问必要的库和依赖项。

using Docker 进行 Excel 应用程序的好处是什么?

Docker 允许您打包、传输和运行 Excel 应用程序作为轻量级、可移植的容器,确保跨不同环境的一致性和效率。这有助于维护稳定且可复现的开发和生产环境。

哪些 Linux 发行版在 Docker 中与 IronXL 最适合?

建议在 Docker 中配置 IronXL 的 Linux 发行版包括 Ubuntu 18、Ubuntu 20、Debian 10、Debian 11、CentOS 7 和 CentOS 8。这些发行版为运行 Excel 应用程序的 Docker 容器提供了稳定的环境。

我可以在 Windows 和 Linux Docker 容器中使用 IronXL 吗?

是的,IronXL 支持在 Windows 和 Linux 平台上的 Docker 容器。这包括在 Azure 上托管的容器,允许灵活的部署选项。

对于使用 IronXL 的 .NET 应用程序,推荐使用哪些 Docker 镜像?

对于使用 IronXL 的 .NET 应用程序,建议使用 Microsoft 官方的 .NET 运行时和 SDK 的 Docker 镜像。这些镜像针对 .NET 应用程序进行优化,可在 Docker Hub 上找到。

如何解决 Docker 环境中 IronXL 的问题?

如果在 Docker 中遇到 IronXL 的问题,请确保所有依赖项在您的 Docker 容器内正确安装。检查 Dockerfile 配置,并确保使用正确的 .NET 版本。参考 IronXL 的文档和 Docker 的官方故障排除指南以获得更多帮助。

有哪些资源可用于了解有关 Docker 和 IronXL 集成的更多信息?

有关 Docker 和 IronXL 集成的更多学习,请参考 Microsoft 关于 Docker 用于 .NET 和 Visual Studio 项目的文档。此外,IronXL 的 Linux 设置指南提供了在 Docker 环境中设置的有价值信息。

Can IronXL be used in a Red Hat environment with Docker?

Yes, IronXL can be used in Docker containers running on RHEL (Red Hat Enterprise Linux) using Red Hat's Universal Base Image (UBI) for .NET 8. This allows deployments without needing a Red Hat subscription, ensuring compatibility with current .NET releases.

What should I do if I face issues with other Linux distributions using IronXL in Docker?

If you encounter issues with other Linux distributions, you may need to configure them manually using `apt-get`. Refer to the IronXL Linux Manual Setup guide for detailed steps.

Where can I find more resources for setting up IronXL in Docker with .NET?

You can find additional resources in the IronXL Linux Setup and Compatibility Guide, and by exploring articles about Docker debugging and Visual Studio integration provided as recommendations on the web page.

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 2,237,574版本:2026.9刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronXL.Excel
nuget.org/packages/IronXL.Excel/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索“IronXL”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

  1. 下载并解压IronXL到你的解决方案目录中的~/Libs等位置
  2. 在Visual Studio解决方案资源管理器中,右键单击引用。选择浏览,“IronXL.dll”

许可证从 $999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户