docker 修改挂载文件 Permission denied详解程序员

场景介绍:

docker 的启动命令:

docker run -d --name odoo12-test1 --privileged=true -v /root/workspace/trans-addons/:/mnt/extra-addons  --link db:db odoo 
 
# 以上命令执行完成: 
[email protected]:~# docker exec -it odoo12-test1 bash 
[email protected]:/$ cd /mnt/extra-addons/ 
[email protected]:/mnt/extra-addons$ touch test.bak 
touch: cannot touch 'test.bak': Permission denied 

案例说明:

  1. 设置主机与容器的文件映射关系/root/workspace/trans-addons/:/mnt/extra-addons,trans-addons为主机目录,extra-addons为容器中的目录
  2. 使用odoo 用户进入docker 容器,并尝试创建一个test.bak 文件时,就会提示Permission denied 错误,因为目前odoo 用户对extra-addons只有查看权限

解决办法:

  1. 使用root 用户进入容器
docker exec -it -u root odoo12-test1 bash 
  1. 修改文件夹的所有者:
chown -hR odoo extra-addons/ 
  1. 现在重新使用odoo用户进入容器,对文件夹中的内容进行修改,就不会出现权限拒绝了.

验证:

  1. 回到主机目录,可以查看文件的所有者已变更:
    docker 修改挂载文件 Permission denied详解程序员
  2. 之前的所有者是root:
    docker 修改挂载文件 Permission denied详解程序员

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/1614.html

(0)
上一篇 2021年7月15日
下一篇 2021年7月15日

相关推荐

发表回复

登录后才能评论