场景介绍:
docker 的启动命令:
docker run -d --name odoo12-test1 --privileged=true -v /root/workspace/trans-addons/:/mnt/extra-addons --link db:db odoo
# 以上命令执行完成:
root@VM-0-13-ubuntu:~# docker exec -it odoo12-test1 bash
odoo@94b197669698:/$ cd /mnt/extra-addons/
odoo@94b197669698:/mnt/extra-addons$ touch test.bak
touch: cannot touch 'test.bak': Permission denied
案例说明:
- 设置主机与容器的文件映射关系
/root/workspace/trans-addons/:/mnt/extra-addons
,trans-addons
为主机目录,extra-addons为容器中的目录 - 使用odoo 用户进入docker 容器,并尝试创建一个test.bak 文件时,就会提示
Permission denied
错误,因为目前odoo 用户对extra-addons只有查看权限
解决办法:
- 使用root 用户进入容器
docker exec -it -u root odoo12-test1 bash
- 修改文件夹的所有者:
chown -hR odoo extra-addons/
- 现在重新使用odoo用户进入容器,对文件夹中的内容进行修改,就不会出现权限拒绝了.
验证:
- 回到主机目录,可以查看文件的所有者已变更:
- 之前的所有者是root: