Ubuntu 安装 GPU 加速版 MATLAB R2022b Docker 环境(完整教程)
·
🧠 Ubuntu 安装 GPU 加速版 MATLAB R2022b Docker 环境(完整教程)
🚀 一、准备阶段
1. 确认系统与驱动
nvidia-smi
若能显示 GPU 型号和 CUDA 版本(例如 CUDA 12.8),则驱动已安装。
2. 安装 Docker 与 NVIDIA 扩展
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable docker --now
安装 NVIDIA 容器工具包:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu22.04/libnvidia-container.list | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo systemctl restart docker
验证:
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi
如能输出 GPU 状态,说明 CUDA 容器访问成功。
🧩 二、准备 MATLAB 文件夹
假设你已在主目录下解压:
~/matlab_R2022b_glnxa64/
🧱 三、创建 Docker 构建环境
1. 创建构建目录
mkdir ~/matlab_docker && cd ~/matlab_docker
2. 创建 Dockerfile
nano Dockerfile
粘贴以下内容:
FROM nvidia/cuda:12.4.0-base-ubuntu22.04
# 安装基础图形依赖与系统字体
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
libx11-6 libxext6 libxmu6 libxt6 libxrender1 libxrandr2 \
libxi6 libglu1-mesa libnss3 libasound2 libxcb1 \
libxfixes3 libxcursor1 libxinerama1 libatk1.0-0 libgtk-3-0 \
libcanberra-gtk-module libcanberra-gtk3-module libxcomposite1 \
libxdamage1 libxtst6 fonts-dejavu-core fontconfig locales \
&& rm -rf /var/lib/apt/lists/*
# 安装 Java 支撑环境(用于 DPABI、SPM 等工具)
RUN apt-get update && apt-get install -y openjdk-11-jdk
# 环境变量设置
ENV LANG=C.UTF-8
ENV QT_X11_NO_MITSHM=1
ENV QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms
ENV LD_LIBRARY_PATH=/usr/lib/jvm/java-11-openjdk-amd64/lib:/opt/matlab/bin/glnxa64:/usr/lib/x86_64-linux-gnu
ENV DISPLAY=:0
ENV LIBGL_ALWAYS_INDIRECT=0
# 默认启动 MATLAB 图形界面
CMD ["/opt/matlab/bin/matlab", "-desktop"]
保存后退出。
3. 构建镜像
docker build -t matlab2022b-gpu .
等待几分钟,构建成功后显示:
Successfully tagged matlab2022b-gpu:latest
🧭 四、创建启动脚本
创建:
sudo nano /usr/local/bin/matlab22
写入以下内容:
#!/bin/bash
xhost +local:root
docker run --rm \
--gpus all \
-e DISPLAY=$DISPLAY \
-e QT_QPA_PLATFORM=xcb \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /home/$USER:/home/$USER \
-v /home/$USER/matlab_R2022b_glnxa64:/opt/matlab \
matlab2022b-gpu
保存后:
sudo chmod +x /usr/local/bin/matlab22
🪟 五、创建桌面启动图标
1. 新建 Desktop 文件
nano ~/.local/share/applications/matlab22.desktop
写入以下内容:
[Desktop Entry]
Type=Application
Name=MATLAB R2022b
Exec=/usr/local/bin/matlab22
Icon=/home/zfy/matlab_R2022b_glnxa64/toolbox/shared/dastudio/resources/MatlabIcon.png
Comment=MATLAB 2022b (Docker GPU)
Categories=Development;Education;
Terminal=false
保存并刷新桌面数据库:
sudo update-desktop-database
2. 赋予执行权限
chmod +x ~/.local/share/applications/matlab22.desktop
现在你可以在 启动器或桌面图标 点击打开 MATLAB!
🧪 六、验证功能
-
在命令窗口输入:
version -java应显示:
Java 11.0.x (OpenJDK 64-Bit Server VM) -
检查 GPU 是否启用:
gpuDevice应输出 GPU 信息。
-
若出现软件 OpenGL 警告:
在 MATLAB 中输入:opengl hardware savepref('matlab.graphics.opengl','Renderer','hardware')
🧰 七、常见问题汇总
| 问题 | 原因 | 解决方法 |
|---|---|---|
libnativewindow_awt.so 找不到 | 缺少 Java AWT 库 | 在 Dockerfile 中添加 openjdk-11-jdk |
MATLAB has disabled some advanced graphics | 软件渲染 | 在 MATLAB 内执行 opengl hardware |
| GUI 打不开 | X11 未映射 | 确保 xhost +local:root 已执行 |
无法访问 /home | 未挂载宿主路径 | 在 docker run 中添加 -v /home/$USER:/home/$USER |
| 启动提示 “as root” | MATLAB 在容器中默认 root | 无碍,可忽略 |
✅ 八、总结
最终效果:
- 双击图标即可打开 MATLAB GUI
- 自动加载 GPU 支持
- 完整兼容 DPABI、SPM、EEGLAB 等图形化神经影像工具
/home与宿主系统文件双向同步
更多推荐



所有评论(0)