专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

gurobi/optimizer Docker 镜像 - 轩辕镜像

optimizer
gurobi/optimizer
Gurobi Optimizer是一款用于求解LP、QP和MIP(MILP、MIQP、MIQCP)等数学规划问题的最快速、最强大的求解器,支持多种编程语言和API。
2 收藏0 次下载activegurobi镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

!Logo

快速参考

维护者:Gurobi Optimization

获取帮助:Gurobi支持、Gurobi文档

支持的标签及对应Dockerfile链接

  • 13.0.0beta1
  • 12.0.3, latest
  • 12.0.2
  • 12.0.1
  • 12.0.0
  • 11.0.3
  • 11.0.2
  • 11.0.1
  • 11.0.0
  • 10.0.3
  • 10.0.2
  • 10.0.1
  • 10.0.0
  • 9.5.2
  • 9.5.1
  • 9.5.0

构建生产应用时,建议使用明确的版本号而非latest标签,以便您控制应用的升级过程。

快速参考(续)

支持的架构:linux/amd64, linux/arm64

已发布镜像制品详情:[***]

DockerHub上可用的Gurobi镜像:

  • gurobi/optimizer:Gurobi Optimizer(完整分发版)
  • gurobi/python:Gurobi Optimizer(仅含Python API)
  • gurobi/python-example:带WLS许可证的Gurobi Optimizer Python示例
  • gurobi/modeling-examples:优化建模示例(以Jupyter Notebooks形式分发)
  • gurobi/compute:Gurobi计算服务器
  • gurobi/manager:Gurobi集群管理器

什么是gurobi/optimizer?

Gurobi Optimizer是目前可用于求解LP(线性规划)、QP(二次规划)和MIP(混合整数线性规划、混合整数二次规划、混合整数二次约束规划)问题的最快速、最强大的数学规划求解器。更多信息请访问Gurobi官网。

Gurobi Optimizer支持多种编程和建模语言,详见参考手册。

gurobi/optimizer镜像提供了一个基础Docker镜像,用于使用任何支持的API(C、C++、Java、.NET、Python、MATLAB和R)构建应用,同时包含命令行工具(如gurobi_cl)和Python shell。如果您仅计划使用Python API,建议使用gurobi/python镜像。

获取Gurobi许可证

Gurobi Optimizer需要许可证才能运行。在Docker容器中运行时,您有以下几种选择:

  • 网络许可服务(WLS)是Gurobi针对容器化环境(Docker、Kubernetes等)推出的新型许可服务。Gurobi组件可自动向全球多个地区的WLS服务器请求和续期许可令牌。WLS仅要求容器能够访问互联网。商业用户可申请评估许可,学术用户可申请免费许可。请注册访问网络许可管理器并阅读文档。

  • Gurobi计算服务器允许您将优化计算无缝卸载到一个或多个专用优化服务器组成的集群。用户和应用可通过高级排队和负载均衡功能共享服务器。用户可监控作业,管理员可管理服务器。集群管理器提供额外功能和安全管理。计算服务器和集群管理器可在容器化环境外使用标准许可证安装,或在容器化环境中使用WLS许可证安装。

  • Gurobi云服务是一种简单且经济高效的方式,可在云服务上运行强大的Gurobi优化软件。您可以在Microsoft Azure®和Amazon Web Services®上启动一台或多台预加载Gurobi软件的专用计算机。

  • Gurobi令牌服务器运行在Docker集群外的专用机器上。Docker容器中运行的客户端程序可从令牌服务器请求令牌。

注意:其他标准许可证类型(NODE、学术版)不支持容器环境。请联系销售代表(***)讨论许可选项。

使用客户端许可证

您需要指定一组属性来连接计算服务器集群、Gurobi云服务或令牌服务器。为此,您有以下选项:

  • 挂载客户端许可证文件:客户端许可证文件(通常名为gurobi.lic)包含连接参数,可挂载到容器中。这种方式适用于Docker测试。在Kubernetes中,许可证文件可存储为密钥并挂载到容器。

  • 通过API设置参数:当应用创建Gurobi环境时,可通过API指定连接参数。参数值可来自环境变量、数据库或应用所需的其他来源。

有关API参数和许可证文件属性的快速指南,请参见此处。

不建议将许可证文件添加到Docker镜像中,因为这既不灵活(无法使用同一镜像进行不同设置),也不安全(某些许可证文件包含应保密的API密钥等凭据)。

测试模型示例

以下命令行示例将运行本地机器上存储的模型文件。模型文件必须存储在将被挂载到实例的本地目录中。

在当前目录(使用$PWD获取)中,创建一个包含您要运行的模型的子目录:

目录:`$PWD/models`
内容:`poolsearch.py`、`stein9.mps`

参见一些模型示例。

如何使用此镜像?

构建自定义镜像

此镜像可直接用于某些测试,但主要用途是帮助使用Gurobi API构建应用。您可以将此镜像作为基础镜像,并添加特定的应用依赖。以下是Dockerfile示例:

文件Dockerfile

# 指定Gurobi基础镜像
FROM gurobi/optimizer:latest

# 设置应用目录
WORKDIR /app

# 复制应用代码
ADD . /app

# 启动应用的命令
CMD [...]

构建自定义镜像后,可使用Docker、Docker Compose或Kubernetes部署:

docker build -t my-gurobi-app .

如前所述,不应将许可证文件复制到镜像中,下一节将提供挂载许可证文件的示例。

使用Docker

使用gurobi/optimizer实例进行优化

以下命令启动gurobi/optimizer容器,挂载包含本地模型的目录,然后优化模型stein9.mps:

console
$ docker run --volume=$PWD/gurobi.lic:/opt/gurobi/gurobi.lic:ro \
             --volume=$PWD/models:/models:ro \
             gurobi/optimizer gurobi_cl /models/stein9.mps

如需启用客户端/服务器日志,可设置GRB_CLIENT_LOG变量:

console
$ docker run --env=GRB_CLIENT_LOG=3 \
             --volume=$PWD/gurobi.lic:/opt/gurobi/gurobi.lic:ro \
             --volume=$PWD/models:/models:ro  \
             gurobi/optimizer /models/poolsearch.py
使用自定义应用进行优化

如果已构建自定义镜像,可应用相同概念:

console
$ docker run --env=GRB_CLIENT_LOG=3  \
             --volume=$PWD/gurobi.lic:/opt/gurobi/gurobi.lic:ro \
             my-gurobi-app

使用Docker Compose

如果您的应用需要不同组件(数据库、前端WebUI、后端服务等),可使用Docker Compose。Docker Compose将帮助构建和连接这些组件。本地测试时,可将许可证文件作为卷挂载。

Gurobi Python实例的docker-compose.yml示例:

version: '3.7'
services:
  gurobi:
    image: <your-own-custom-image>
    volumes:
      - ./gurobi.lic:/opt/gurobi/gurobi.lic:ro

运行$ docker-compose up --build构建并运行应用。

使用Kubernetes

类似地,可使用Kubernetes在集群中部署应用。以下是使用自定义镜像<your-own-custom-image>的应用部署描述文件deployment.yaml示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: optim
  labels:
    name: optim
spec:
  selector:
    matchLabels:
      name: optim
  replicas: 1
  template:
    metadata:
      labels:
        name: optim
    spec:
      volumes:
        - name: gurobi-lic
          secret:
            secretName: gurobi-lic
      containers:
        - name: optim
          image: <your-own-custom-image>
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: gurobi-lic
              mountPath: "/opt/gurobi_lic"
              readOnly: true
          env:
            - name: GRB_LICENSE_FILE
              value: "/opt/gurobi_lic/gurobi.lic"

部署应用前,建议将许可证文件存储为密钥并挂载到容器中:

kubectl create secret generic gurobi-lic --from-file="gurobi.lic=$PWD/gurobi.lic"
kubectl apply -f deployment.yaml

如果在同一集群中部署自定义镜像和集群管理器,需将应用连接到集群管理器。建议按以下步骤操作:

  • 在集群管理器中创建系统用户并生成API密钥。
  • 将API密钥声明为密钥:
kubectl create secret generic gurobi-manager --from-literal=accessId=xxxxx --from-literal=secret=xxxxxx
  • 使用环境变量传递API密钥和管理器URL:
          env:
            - name: GRB_CSMANAGER
              value: "[***]"
            - name: GRB_CSAPIACCESSID
              valueFrom:
                secretKeyRef:
                  name: gurobi-manager
                  key: accessId
            - name: GRB_CSAPISECRET
              valueFrom:
                secretKeyRef:
                  name: gurobi-manager
                  key: secret
  • 最后,在应用中从变量分配Gurobi环境参数,以下是Python示例:
        env = Env(empty=True)
        csManager = os.getenv('GRB_CSMANAGER','')
        if csManager:
            env.setParam('CSManager', csManager)

        csAPIAccessId = os.getenv('GRB_CSAPIACCESSID','')
        if csAPIAccessId:
            env.setParam('CSAPIAccessID', csAPIAccessId)

        csAPISecret = os.getenv('GRB_CSAPISECRET','')
        if csAPISecret:
            env.setParam('CSAPISecret', csAPISecret)

        env.start()

环境变量

可使用以下环境变量:

  • GRB_CLIENT_LOG:启用或禁用客户端-服务器日志。选项包括关闭(0)、仅错误消息(1)、信息和错误消息(2)或详细信息、信息和错误消息(3)。

许可证

下载并使用此镜像即表示您同意包含在此镜像中的Gurobi软件的最终用户许可协议。

与所有Docker镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证约束(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。

对于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用符合其中包含的所有软件的相关许可证。

查看更多 optimizer 相关镜像 →
gurobi/python-example logo
gurobi/python-example
by gurobi
展示如何将Gurobi Python镜像用作带有Web License Service (WLS)许可证的基础镜像,提供Python优化示例。
1100K+ pulls
上次更新:1 个月前
gurobi/compute logo
gurobi/compute
by gurobi
Gurobi Compute Server可将优化计算任务从应用程序中卸载,支持将LP、QP和MIP等问题的计算负载分配到专用服务器集群,具备排队、负载均衡、作业监控和服务器管理功能,适用于现代优化应用的部署。
150K+ pulls
上次更新:1 个月前
gurobi/manager logo
gurobi/manager
by gurobi
Gurobi集群管理器用于管理计算节点并扩展优化能力。
550K+ pulls
上次更新:1 个月前
gurobi/python logo
gurobi/python
by gurobi
Gurobi Python API镜像提供便捷的面向对象建模构造和完整Gurobi功能接口,简化优化模型(LP、QP、MIP等)的构建与求解,适用于容器化环境中的数学规划应用开发。
150K+ pulls
上次更新:1 个月前
gurobi/modeling-examples logo
gurobi/modeling-examples
by gurobi
该镜像包含Gurobi Python API建模示例,展示了决策变量添加、线性表达式构建、约束条件设置、目标函数定义等核心功能,以及广义约束、分段线性函数等高级特性,通过Jupyter Notebook提供可浏览和执行的优化建模示例。
10K+ pulls
上次更新:1 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
gurobi/optimizer
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429