wolframresearch/wolframengine14.3、14.3.0、latestwolframresearch/wolframengine:<version>基础镜像:ubuntu:22.04
这是标准镜像,仅包含原版Wolfram Engine和WolframScript命令行包装器。
wolframresearch/wolframengine:<version>-cuda基础镜像:nvidia/cuda:10.2-base-ubuntu18.04
CUDA镜像变体目前不支持。
该镜像包含标准Wolfram Engine和WolframScript,以及MXNetResources paclet,用于利用Wolfram语言的机器学习和神经网络功能进行GPU加速。此镜像需要受支持的NVIDIA GPU和NVIDIA容器运行时。如果MXNetResources paclet发布新版本,此镜像可能在Wolfram Engine版本之间更新。
Wolfram Engine Docker镜像允许您以交互或脚本模式运行Wolfram语言。
Wolfram Engine使您能够访问Wolfram语言。请参阅:
Wolfram Engine有两种许可方式可供使用。您可以根据应用程序需求选择其中一种。
mathpass文件写入磁盘(不要与您的账户密码混淆)。此方式允许您使用Wolfram Engine Community Edition许可证,但您只能在有限数量的机器上激活Wolfram Engine(通常为两台)。此方法可能不适用于容器可能被调度到多个物理或虚拟节点的环境,如Kubernetes或Docker Swarm集群。首先访问Wolfram Research网站获取Wolfram Engine Community Edition许可证。您需要注册Wolfram ID并接受使用条款。
要激活Wolfram Engine,需要以交互模式运行Docker容器。将***替换为您自己的Wolfram ID,并在密码提示处输入您的密码。
Wolfram Engine激活后,在In[1]提示符处输入"$PasswordFile"并按Enter。输出将显示密码文件的位置。接下来,在In[2]提示符处输入"$PasswordFile // FilePrint"以打印密码文件内容。然后,在In[3]提示符处输入"Quit"并按Enter退出Wolfram Engine。
> docker run -it wolframresearch/wolframengine The Wolfram Engine requires one-time activation on this computer. Visit [***] to get your free license. Wolfram ID: *** Password: Wolfram Engine activated. See [***] for more information. Wolfram Language 12.2.0 Engine for Linux x86 (64-bit) Copyright 1988-2020 Wolfram Research, Inc. In[1]:= $PasswordFile Out[1]= /home/wolframengine/.WolframEngine/Licensing/mathpass In[2]:= $PasswordFile // FilePrint 1e1d781ed0a3 6520-03713-97466 4304-2718-2K5ATR 5095-179-696:2,0,8,8:80001:20190627 In[3]:= Quit
由于容器内的文件系统更改不会持久化到启动容器的镜像中,当您重新启动并再次运行镜像时,此密码信息会丢失。因此,您需要将密码信息复制到主机,以便持久存储。
在主机上创建一个Licensing目录来存放密码文件:
mkdir Licensing
使用文本编辑器创建名为mathpass的文件,将步骤1中In[2]的输出(密码内容)复制粘贴到该文件中并保存。现在,Licensing目录中应该有一个mathpass文件,其中包含一行四个字段。这些字段(仅供参考)分别表示机器名称、唯一机器标识符、激活密钥和密码。
要使用主机上的密码文件启动Wolfram Engine,请使用-v选项将./Licensing目录挂载到Docker容器的/usr/share/Mathematica/Licensing路径。如果一切正常,您现在可以反复启动此Docker容器,并将其作为自定义开发项目的起点。
> docker run -it -v ./Licensing:/usr/share/Mathematica/Licensing wolframresearch/wolframengine Wolfram Language 12.2.0 Engine for Linux x86 (64-bit) Copyright 1988-2020 Wolfram Research, Inc. In[1]:= $MachineName Out[1]= 861d2b5cd33f In[2]:= $Version Out[2]= 12.2.0 for Linux x86 (64-bit) (December 12, 2020)
或者,可以使用docker commit命令创建包含正在运行容器中创建的mathpass文件的新镜像。
$PasswordFile中的新密码复制到主机的mathpass文件中(基本上重复前面的步骤1和2)。按需许可证授权是可重复使用的密钥,可用于激活一个或多个Wolfram Engine内核。创建授权需要访问Wolfram语言。如果您没有Wolfram Mathematica、Wolfram|One订阅或其他Wolfram语言产品,可以注册免费的Wolfram Cloud Basic订阅,并在云笔记本中创建授权。
计算CreateLicenseEntitlement函数以创建链接到您Wolfram账户的新许可证授权:
mathematicaIn[1]:= entitlement = CreateLicenseEntitlement[] Out[1]= LicenseEntitlementObject[O-WSTD-DA42-GKX4Z6NR2DSZR, <| PolicyID -> WSTD, PolicyName -> Standard, BillingInterval -> 900 seconds, KernelCosts -> <|Standard -> 4. credits per hour, Parallel -> 4. credits per hour|>, KernelLimits -> <|Standard -> 1, Parallel -> 0|>, CreationDate -> DateObject[{2020, 12, 18, 10, 57, 40.}, Instant, Gregorian, -5.], ExpirationDate -> DateObject[{2020, 12, 25, 10, 57, 40.}, Instant, Gregorian, -5.], LicenseExpirationDuration -> 1 day 0. hours|>]
获取授权ID字符串:
mathematicaIn[2]:= entitlement["EntitlementID"] Out[2]= O-WSTD-DA42-GKX4Z6NR2DSZR
要使用按需许可证授权激活Wolfram Engine内核,请通过-entitlement命令行选项向WolframScript提供授权ID:
$ docker run -it wolframresearch/wolframengine wolframscript -entitlement O-WSTD-DA42-GKX4Z6NR2DSZR Wolfram Language 12.2.0 Engine for Linux x86 (64-bit) Copyright 1988-2020 Wolfram Research, Inc. In[1]:= $MachineName Out[1]= 652d62ac0fa4 In[2]:= $Version Out[2]= 12.2.0 for Linux x86 (64-bit) (December 12, 2020)
(授权ID也可以通过WOLFRAMSCRIPT_ENTITLEMENTID环境变量提供给WolframScript。)
启动内核时,您的服务积分余额会被扣费,并且在终止内核之前会定期扣费。如果返回创建授权的Wolfram语言会话,可以请求授权的状态属性:
In[3]:= entitlement["CreditsSpent"] Out[3]= 1 credit
活动内核数量已增加:
In[4]:= entitlement["StandardKernelActiveCount"] Out[4]= 1
有关授权表达式的可用属性,请参阅LicenseEntitlementObject文档。
CreateLicenseEntitlement函数有几个默认设置您可能需要修改:
"StandardKernelLimit"/"ParallelKernelLimit":默认分别为1和0。这些设置确定使用授权可以激活的每种类型Wolfram Engine内核的最大并发运行数量。"StandardKernelLimit"适用于常规内核(如通过命令行启动的内核),而"ParallelKernelLimit"适用于通过LaunchKernels启动的并行子内核以及ParallelEvaluate等并行函数。如果要同时运行多个Wolfram Engine内核,请提高这些值。"LicenseExpiration":默认24小时。此设置确定使用授权启动的Wolfram Engine内核的最大运行时长。默认24小时情况下,内核运行超过24小时后将被终止。如果应用程序需要长时间运行的Wolfram Engine内核,请提高此值。"EntitlementExpiration":默认7天。此设置确定许可证授权本身的过期日期,即授权ID不再可用于激活新内核的日期。如果要在较长时间内使用相同的授权ID启动多个内核,请提高此值。此值可以设置为持续时间或未来的绝对日期。有关可用设置的更多信息,请参阅CreateLicenseEntitlement函数文档。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务