加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

使用docker在MAC上安装Openfoam,从主机向虚拟系统文件复制

(2019-01-30 00:04:53)
分类: OpenFoam

前提条件:保证已经使用dockerMAC上成功的安装了Openfoam

1.    启动terminal中,输入:docker login,启动docker,需要输入已经注册的docker账户以及密码。(ps: terminal中输入docker,可以获得关于docker命令的帮助信息)。登陆docker之后,可以在terminal中输入:docker ps,可以查看自己的CONTAINER IDIMAGECOMMANDSTATUSPORTSNAMES。由于未启动openfoam,所以这些没有信息,运行结果:

Qiangqiangs-iMac:X11 qiangqiangsun$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

 

2.    在本机安装好的openfoam目录中,找到startMacOpenFOAM可执行文件,而后在terminal中输入./startMacOpenFOAM,docker虚拟系统中启动openfoam,此时,在另外打开一个terminal,输入docker ps,就可以看见CONTAINER IDIMAGECOMMANDSTATUSPORTSNAMES有内容了。PS:记住自己的CONTAINER ID,复制文件的时候要用。

3.    使用命令从主机向虚拟系统中复制文件,复制到两个路径:

(1)    docker cp ~/Destop/file.txt myContainerID:/

说明:结果是可以复制成功的,但是file.txt出现在了虚拟系统的顶级目录中,而且文件的权限为:-rw-------    501 games,此时,使用rm或者是rm -r是删不掉file.txt的,修改file.txt的权限也不行。因为此时登陆虚拟系统的用户是ofuser。尝试使用su root,su -,切换为root用户,需要密码,但是输入docker账户的密码不对。

解决办法:terminal中输入exit,退出当前的虚拟系统,打开新的terminal,输入:docker exec -u 0 -it mycontainer bash,此时输入自己docker的账户与密码,就可以以root用户的身份登陆虚拟系统,使用rm删掉file.txt了。PS关于该命令的解释见http://stackoverflow.com/questions/28721699/root-password-inside-a-docker-containerCONTAINER ID对应的内容。

(2)    docker cp ~/Destop/file.txt myContainerID:/home/ofuser/OpenFOAM/

说明:file.txt是可以使用rm命令删除的。

小结:docker可以使用ofuser账户登陆虚拟系统(如上述步骤12所示),也可以通过docker exec -u 0 -it mycontainer bash,以root的身份登陆虚拟系统。PS:需要用自己的CONTAINER ID,替换掉命令中的mycontainer.

 

此外,从虚拟系统,主机之间相互复制文件:

docker cp foo.txt mycontainer:/foo.txt

docker cp mycontainer:/foo.txt foo.txt

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有