可利用的Fenics镜像

文章链接https://bitbucket.org/fenics-project/docker

此存储库包含各种用于Fenics构建的各种脚本,构建的图像 可在quay.io上获得.

安装Docker后,可以使用以下命令运行下面的任何镜像:

docker run -ti quay.io/fenicsproject/<image-name>:latest

首先你可能想尝试stable:current包含FENCS的完整稳定版本的图像,其中已经编译了PETSc,SLEPc,petsc4py和slepc4py.此镜像由FEniCS项目团队检查.

如果想要将当前目录共享到容器中,请使用一下命令:

cd $HOME/project-1
docker run -ti --name project-1 -v $(pwd):/home/fenics/shared quay.io/fenicsproject/dev

另一个终端:

cd $HOME/project-2
docker run -ti --name project-2 -v $(pwd):/home/fenics/shared quay.io/fenicsproject/stable

注意到 --name  参数 ,它允许我们设计一个容易 去记住的名字到我们的容器中.而不是CONTAINER ID.现在我们有两个容器,运行两个不容版本的FEniCS. CONTAINER ID.

4.2 在一个容器中运行多个

您可以通过运行 一下命令获取所有正在运行的容器的列表:

docker  ps

在 容器内不 运行另一个bash容器project-1.我们使用以下命令 在容器中执行新进程:docker exec  

docker exec -ti -u fenics project-1 /bin/bash -l

其中-l很重要,可确保正确设置容器中对的环境一遍FEniCS运行.您还可已使用 ipython3立即进入提示:

docker exec -ti -u fenics project-1 /bin/bash -l -c ipython3  

该-c标志使得bash从 字符串 中读取命令.

4.3 重启一个退出的容器

开启一个容器一个 正常的方式

docker run -ti --name new-project -v $(pwd):/home/fenics/shared quay.io/fenicsproject/dev

使用  docker ps

使用exit 退出容器

 在使用docker ps 

 再次启动new-project容器 运行命令:

docker start new-project

我们可以以命令在容器中创建一个新shell

docker exec -ti new-project -u fenics /bin/bash -l

相反,您可以使用以下命令停止使用的容器.

docker stop new-project

4.4 在docker 容器中运行FEniCS 像应用一样

您不必通过Docker中启动shell并运行python3以执行FEniCS脚本来运行FEniCS.也可以从命令直接在容器中执行任何可执行文件  docker run.

假设 我们my-code.py在主机上的当前工作目录中有一个python文件,我们希望python3在一次性FEniCS容器中直接运行它.可以执行如下操作.

docker run --rm -v $(pwd):/home/fenics/shared -w /home/fenics/shared quay.io/fenicsproject/stable "python3 my-code.py"让我们run逐个标记打破这个复杂的命令

--rm  表示do
cker 在退出容器后 删除容器,旧的和未使用的容器不会弄乱您的机器

--v $(pwd):/home/fenics/shared 像以前一样将当前工作目录共享$(pwd)到容器

--w 将容器中的当前工作目录设置为共享目录/home/fenics/shared

"python3 my-code.py"是传递给Docker容器的命令 .容器立即在工作目录中执行此命令.

 

在my-code.py 中我有以以下简单的python/FEniCS代码:

from dolfin import *
print("Running FEniCS...")
mesh = UnitSquareMesh(10, 10)
V = FunctionSpace(mesh, "P", 1)
u = interpolate(Constant(1.0), V)
with XDMFFile("f.xdmf") as f:
    f.write(u)

运行上面命令 然后给我输出 docker run

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值