本文描述在Ubuntu下利用docker安装并使用OpenFOAM的基本过程。
虽然Linux下可以直接安装OpenFOAM,不过利用docker安装可以省去一大堆的编译(24核编译了两个多小时)或下载时间(实在无法忍受sourceforge的几KB的下载速度)。docker其本质上是个虚拟机,不过要比常规的虚拟机更友好。我们可以利用docker安装别人打包好的应用程序,达到开箱即用的效果。
1 安装docker
在Ubuntu下安装docker非常简单,启动终端,执行一条命令即可:
sudo snap install docker
如下图所示。
下载速度很快,一会儿就安装完了。此时可以在终端中输入命令docker --help
,若如下图所示输出,则表示安装成功。
安装完成Docker后,默认已经启动了docker服务,如需手动控制docker服务的启停,可执行如下命令:
# 启动docker
sudo service docker start
# 停止docker
sudo service docker stop
# 重启docker
sudo service docker restart
docker可以在任何linux系统下安装,同时docker还支持在windows及macos系统下使用。
2 获取镜像
docker hub中有大量的镜像可供下载,其网址为:https://hub.docker.com/。
如下所示,通过搜索可以找到一大堆OpenFOAM相关的镜像。
找到所要使用的镜像,点开来如下图所示,复制命令。
-
如下图所示在终端输入命令 sudo docker pull opencfd/openfoam2112-default
,此时开始自动下载镜像文件,视网络状况可能需要几分钟的时间。
下载完毕后如下图所示。
此时可以利用命令sudo docker images
查看镜像。如下图所示,可以看到刚下载的镜像文件已经有了
3 使用镜像
最简单的执行方式如下图所示。
其命令格式为:
sudo docker run 镜像名 命令
这是最基础的使用方式。
如要执行求解器icoFoam
,可以使用命令:
sudo docker run opencfd/openfoam2112-default icoFoam
不过这种方式太麻烦,可以采用下面的两种方式之一:
-
创建一个交互式容器。
利用下面的命令创建一个名为of2112的交互式容器。
sudo docker run -it --name=of2112 --network=host opencfd/openfoam2112-default /bin/bash
该容器会自动打开一个bash,在里面可以尽情地使用OpenFOAM了。如下面执行icoFoam -help
能够成功返回信息。
不过这种方法有个缺点,当输入命令exit
会退出docker环境,此时要想再使用OpenFOAM就必须再执行上面的命令。若想要长期使用docker,可以创建守护式容器。
-
创建一个守护式容器。
利用下面的命令可以创建一个名为of2112的守护容器,可以长时间运行。
sudo docker run -itd --name=of2112 --network=host opencfd/openfoam2112-default
创建完毕后可以通过下面的命令进入容器:
sudo docker exec -it of2112 /bin/bash
此时执行OpenFOAM即可畅通无阻。
此为守护式容器,即使关闭终端,也可在新的终端通过进入容器再次使用。不过电脑重启了就必须运行上面两条命令。
# 获取所有的容器id
docker ps -a
# 停止一个已经在运行的容器
docker stop 容器名或容器id
# 启动一个已经停止的容器
docker start 容器名或容器id
# kill掉一个已经在运行的容器
docker kill 容器名或容器id
# 删除容器
docker rm 容器名或容器id
关于docker的其他操作,可参阅https://www.cnblogs.com/blog-rui/p/11244023.html或docker官方文档。
4 利用脚本安装
openfoam.com提供了一个可以直接使用openfoam的docker脚本,详细可见网址:https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled/docker。
-
下载脚本openfoam-docker -
运行下面的命令
chmod +x openfoam-docker
ln -sf openfoam-docker openfoam2112-default
-
测试脚本是否能够运行,可以使用下面的命令
openfoam-docker -help
openfoam-docker -help-full
-
运行脚本打开容器
openfoam-docker
或
openfoam-docker -dry-run
第一次运行脚本会下载镜像文件(大概700MB),视网络状况,大概需要几分钟到半个小时不等。
注意:docker不只可以在linux中运行,同样可以在windows下运行,所以上面的方法同样适合于在windows下利用docker安装OpenFOAM,不过windows下使用docker需要安装WSL 2(是windows下的docker需要WSL2运行环境)。镜像文件可以随便制作和拷贝,所以可以利用docker实现软件的即插即用。
(本文结束)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册