朋友需要帮忙用服务器资源跑个matlab程序 。 但我不用matlab,服务器上没有matlab的环境,于是想到了用docker. 网上搜到是有这三个镜像 :
mathworks/matlabmathworks/matlab-depsmathworks/matlab-deep-learning
朋友就是算个简单的东西 ,于是我选了第一个。
拉镜像需要点时间
docker pull mathworks/matlab:R2022b
最开始是bash里面直接跑 然后提示错误:‘syms’ requires Symbolic Math Toolbox. 意思就是缺了symbolic这个库,需要安装。 网上搜了一圈了解到装工具箱需要gui界面
浏览器运行
docker run -itd --shm-size=512M -p 8888:8888 -v /path/:/container_path mathworks/matlab:R2022b -browser
容器内的端口就按8888来;要是宿主机的端口有冲突可以换一个,到时候浏览器访问的也记得按你后面选的端口来
浏览器输入:服务器ip:8888
但是吧,这个模式不支持工具箱安装。具体报什么我忘记了。
通过vnc远程运行
docker run -itd --shm-size=512M -p 5901:5901 -p 6080:6080 -v /path/:/container_path mathworks/matlab:R2022b -vnc
容器内的端口就按5901和6080来;要是宿主机的端口有冲突可以换一个,到时候浏览器访问的也记得按你后面选的端口来
5901是vnc的端口,需要vnc客户端; 没有vnc客户端也没事,可以通过浏览器输入:服务器Ip:6080 ,会进入一个远程桌面,双击即可打开,然后就是填写账号密码。
权限问题
但是在添加工具箱的时候,碰到的问题类似于这个,也是没权限写入: ubuntu MATLAB 安装 toolbox 时遇到“Unable to write to /usr/local/MATLAB/R2022b“ 但这方法对我不管用,sudo chown 半天没反应,想su一下也不知道root的密码(容器是官方提供的)。
然后就逛文档,发现可以在启动的时候,在终端用sudo起matlab。像这样: 在终端中输入sudo matlab
sudo matlab
这次打开就有root权限了,可以顺利的安装工具箱了。
官方文档1.MATLAB Container on Docker Hub. 链接 官方文档2.Install Updates, Toolboxes, Support Packages, and Add-Ons in Containers. 链接
参考文章
发表评论