如何在 openFOAM 的 docker 版本中挂载卷

Posted

技术标签:

【中文标题】如何在 openFOAM 的 docker 版本中挂载卷【英文标题】:How to mount volumes in docker release of openFOAM 【发布时间】:2016-10-31 01:21:42 【问题描述】:

我正在运行 openFOAM 的 docker 版本。在运行 openFOAM 时,我无法访问在 /mnt 中设置的任何卷。我跑步时可以看到它们:

bash-4.1$ lsblk

NAME                                  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                                     8:0    0  29.8G  0 disk  
|-sda1                                  8:1    0   200M  0 part  
|-sda2                                  8:2    0   500M  0 part  
`-sda3                                  8:3    0  29.1G  0 part  
  `-luks-c551009c-5ab5-4526-85fa-45105a445734 (dm-0)
                                      253:0    0  29.1G  0 crypt 
    |-korora_a00387863--6-root (dm-1) 253:1    0  26.1G  0 lvm   /etc/passwd
    `-korora_a00387863--6-swap (dm-2) 253:2    0     3G  0 lvm   
sdb                                     8:16   0 465.8G  0 disk  
|-sdb1                                  8:17   0 137.9G  0 part  
|-sdb2                                  8:18   0 158.7G  0 part  
`-sdb3                                  8:19   0 169.2G  0 part  
sdg                                     8:96   1    15G  0 disk  
loop0                                   7:0    0   100G  0 loop  
`-docker-253:1-265037-pool (dm-3)     253:3    0   100G  0 dm    
  `-docker-253:1-265037-10f82f41512f788ec85215e8764cd3c5b0973d548fe4db2fcbcbaf50db6a4b9c (dm-4)
                                      253:4    0    10G  0 dm    /
loop1                                   7:1    0     2G  0 loop  
`-docker-253:1-265037-pool (dm-3)     253:3    0   100G  0 dm    
  `-docker-253:1-265037-10f82f41512f788ec85215e8764cd3c5b0973d548fe4db2fcbcbaf50db6a4b9c (dm-4)
                                      253:4    0    10G  0 dm    /

但是,这些都没有出现在/dev 中,所以我不知道如何安装我想要的卷。似乎有比每次使用 openFOAM 时手动安装卷更好的解决方案。欢迎任何想法,我不了解 docker 文档。

【问题讨论】:

【参考方案1】:

您还没有向我们确切说明“在/mnt 中设置的卷”是什么意思,因此在这个答案中会有很多猜测,而您实际上正在尝试做什么。

如果您尝试在您的 主机 上安装块设备并使其在您的 容器 中可用,通常的做法是:

将设备安装在主机上的某个位置(例如,/mnt

使用docker run-v 参数在容器内公开该挂载点,如下所示:

docker run -v /mnt/volume1:/volume1 alpine sh

上述命令行会将主机上的/mnt/volume1 暴露为容器内的/volume1

如果您发现您经常使用相同的卷集运行同一个容器,并且您厌倦了冗长的命令行,只需将 docker run 命令放到 shell 脚本中,或者考虑使用类似 @987654329 的命令@ 帮助实现自动化。

【讨论】:

对不起,我不明白。我有一个带有三个分区的第二个硬盘驱动器,这些分区自动设置为挂载在 /mnt 中,并且只想在我处于 openFOAM 时能够访问它们。我真的不明白 docker - openFOAM 是容器吗?当我运行该命令时,我得到: docker: Error parsing reference: "/mnt/volume1" is not a valid repository/tag。我真的不知道我在做什么......

以上是关于如何在 openFOAM 的 docker 版本中挂载卷的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Docker 窗口中打开 paraView

通过 Docker 安装 OpenFOAM

无法运行 OpenFOAM docker 镜像

HTCondor 与 OpenFOAM

OpenFoam:在 polyMesh 文件夹中找不到 blockMeshDict 文件

在 Mac OS 上安装 OpenFoam