docker: 将一个普通用户owner的文件夹挂载入容器,新建的文件为root的解决方法

在某台服务器上,一个普通用户(假设用户名为szw,用户组ID与用户ID相同,均为1026)使用docker,将自己拥有的一个文件夹挂载入容器,进行计算任务。
计算完成后,新建的文件为root的解决方法,普通用户无法删除。

1. build一个镜像,在这个镜像中新建一个用户

为了解决这个问题,我们首先要对于原有的镜像进行改造,让这个镜像增加一个用户。
首先要知道我在这个服务器上的giduid

在终端中输入命令:

cat /etc/passwd

在这里插入图片描述
看到uidgid均为1026

新建new_user.Dockerfile

FROM harbor.atompai.com/nitrogen/xdock:v1
MAINTAINER qichun.tang@xtalpi.com
ENV NEW_UNAME="szw"   # 填入你的用户名
ENV NEW_UID="1026"        # 填入你的uid
RUN groupadd -g  $NEW_UID $NEW_UNAME
RUN useradd -d /home/$NEW_UNAME -u $NEW_UID -g $NEW_UID $NEW_UNAME  -m -s /bin/bash 

终端中运行:

docker -H 0.0.0.0 build -t xdock:szw --file new_user.Dockerfile .    #xdock后的tag改为你的用户名

2.新的使用方式

完成后,以后单机使用scorefunc注意两点:

  1. 使用用户镜像(如xdock:szw
  2. 退出前记得执行chown -R szw:szw /root/c204_test(szw表示用户名,/root/c204_test表示容器中的项目路径)

这是一个具体案例:

docker -H 0.0.0.0 run -it --rm -v $PWD/scorefunc:/home/scorefunc -v $PWD/c204_test:/root/c204_test xdock:szw  /bin/bash

----进入镜像-----

cd /home/scorefunc
python setup.py install
scorefunc create -n c204_test -p /root/c204_test/
scorefunc prepare ligand csv --csv example/c204_test --pdbcode RET1 --gen_id
scorefunc prepare complex example/RET_complex.pdb
scorefunc pose generate -m rdock -j -1
scorefunc pose export -m rdock

重点:

chown -R szw:szw /root/c204_test/
chown -R szw:szw /home/scorefunc/

----退出镜像-----

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值