
manimcommunity/manimManim Community Docker 镜像是社区维护的Python动画框架Manim的容器化版本。Manim是一个用于创建精确数学动画的引擎,最初由3Blue1Brown推广,现由Manim社区独立维护。该Docker镜像提供预配置的运行环境,包含所有必要依赖,用户无需在本地系统安装复杂依赖库(如LaTeX、ffmpeg等),即可快速开始动画开发和渲染。
Manim Docker镜像继承Manim框架核心功能,同时具备容器化优势:
%%manim IPython魔术命令,支持JupyterLab/Notebook交互式开发。适用于需创建数学与科学可视化动画的各类场景:
提供以下标签对应不同版本:
latest:GitHub主分支最新开发版本stable:最新稳定发布版本(参考官方发布页)vX.Y.Z:特定版本(如v0.18.1),对应具体发布版本挂载本地目录并渲染场景:
bashdocker run --rm -it \ --user="$(id -u):$(id -g)" \ # 保持文件权限一致 -v "$(pwd):/manim" \ # 挂载当前目录到容器内/manim manimcommunity/manim \ manim test_scenes.py SquareToCircle -qm # 中等质量渲染SquareToCircle场景
创建可重复使用的命名容器:
创建并进入交互式容器:
bashdocker run -it --name my-manim-container \ -v "$(pwd):/manim" \ manimcommunity/manim /bin/bash
(容器内可执行tlmgr install <package>安装额外LaTeX包)
启动现有容器:
bashdocker start my-manim-container
在运行中容器内执行渲染:
bashdocker exec -it --user="$(id -u):$(id -g)" \ my-manim-container \ manim test_scenes.py SquareToCircle -qm
启动JupyterLab进行交互式开发:
bashdocker run -it -p 8888:8888 \ manimcommunity/manim \ jupyter lab --ip=0.0.0.0
终端输出访问链接(如[***]),在Notebook中使用:
python%%manim -qm SquareToCircle class SquareToCircle(Scene): def construct(self): circle = Circle() square = Square() square.flip(RIGHT) square.rotate(-3 * TAU / 8) circle.set_fill(PINK, opacity=0.5) self.play(Create(square)) self.play(Transform(square, circle)) self.play(FadeOut(square))
创建docker-compose.yml简化管理:
yamlversion: '3' services: manim: image: manimcommunity/manim:stable volumes: - ./:/manim # 挂载本地项目目录 user: "${UID}:${GID}" # 匹配本地用户权限 command: manim test_scenes.py SquareToCircle -qm # 默认渲染命令
使用时执行:
bashexport UID=$(id -u) GID=$(id -g) # 设置环境变量 docker-compose up
通过命令行参数控制渲染行为,常用参数如下:
| 参数 | 说明 |
|---|---|
-p | 渲染后自动预览视频(Docker环境不支持,容器无图形界面) |
-f | 渲染后显示输出文件(Docker环境不支持) |
-ql | 低质量渲染(480p,15fps,快速) |
-qm | 中等质量渲染(720p,30fps,平衡) |
-qh | 高质量渲染(1080p,60fps,精细) |
-s | 仅渲染最后一帧并显示 |
-n <数字> | 跳过前n个动画,从第n+1个开始渲染 |
-o <文件名> | 指定输出文件名(默认使用场景类名) |
--media_dir | 指定输出目录(默认./media) |
示例:低质量渲染并指定输出文件名:
bashdocker run --rm -it -v "$(pwd):/manim" manimcommunity/manim \ manim test_scenes.py SquareToCircle -ql -o my_animation
--user="$(id -u):$(id -g)"确保容器内用户ID与本地一致,避免文件权限异常。-p(预览)和-f(文件浏览器),因容器无图形界面。/bin/bash)执行tlmgr install <package>安装。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务