不同容器的一些权限问题
·
1.概述
很多容器会因为文件夹权限问题,导致一些列错误。
比如挂载卷,容器需要对某个文件夹做出读、写、执行的操作,但是容器的用户和文件夹所属的用户不同,例如文件夹属于root用户,后端容器属于docker用户,他俩的工牌不同,一个是0,一个是1000。
所以要对这些文件夹的归属做出修改。
2.各个容器目录
/opt/jimidou/ (项目根目录)
│
├── apps/ (应用层:统一建议所有者 UID 1000)
│ ├── backend/
│ │ ├── 数据和日志等/ (存放 testcase、log、file) -> [UID 1000]
│ │ ├── docker-compose.yml
│ │ └── .env
│ └── frontend/
│ ├── certs/ (ssl证书)
│ └── docker-compose.yml
│
└── infra/ (基础设施层:注意不同的工号)
├── mysql/ (数据库)
│ └── data/ -> [UID 999] (极度重要:MySQL 必须用 999)
├── redis/ (缓存)
│ └── data/ -> [UID 999] (极度重要:Redis 必须用 999)
├── nacos/ (配置中心)
│ ├── data/ -> [UID 1000]
│ └── logs/ -> [UID 1000]
├── prometheus/
│ └── data/(监控数据存储) -> [UID 65534] (注意:Prometheus 默认用的是 nobody 用户)
└── node-exporter/ (系统监控) -> [UID 0] (注意:它要读宿主机内核信息,通常用 root)
3.给于权限
不同用户和“工牌”的对应关系:
root —— 0ubuntu —— 1000
大多数docker容器 —— 1000
mysql容器 —— 999
redis容器 —— 999
Prometheus容器 —— 65534
1.确保各个文件夹属于ubuntu而非root用户
比如某个data文件夹由root创建就会归root管,现在拿回权限
并且给
jimidou文件夹ubuntu的权限(即1000号“工牌“,大多数docker容器也能一起用)
sudo chown -R ubuntu:ubuntu /opt/jimidou
2.赋予jimidou文件夹限制性权限(主人能写,其他用户只能读和执行)
第一个数字
7:给 主人(4+2+1,即读+写+执行)。第二个数字
5:给 同组成员(4+0+1)。第三个数字
5:给 路人甲(4+0+1)。
sudo chmod -R 755 /opt/jimidou
3.开始给不同docker用户的文件夹操作权限
# 1. 割让给 MySQL (999)
sudo chown -R 999:999 /opt/jimidou/infra/mysql/data
# 2. 割让给 Redis (999)
sudo chown -R 999:999 /opt/jimidou/infra/redis/data
# 3. 割让给 Prometheus (65534)
sudo chown -R 65534:65534 /opt/jimidou/infra/prometheus/data
更多推荐

所有评论(0)