电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Docker容器沒有權(quán)限寫入宿主機(jī)目錄的解決方案

瀏覽:28日期:2024-10-31 11:58:57

在應(yīng)用docker容器的時(shí)候,更多的時(shí)候我們會(huì)把宿主機(jī)的目錄掛載到docker容器中。

在宿主機(jī)的文件夾權(quán)限隸屬于root時(shí),我們需要將文件夾的權(quán)限用戶進(jìn)行 chown 設(shè)置,才能保證目錄的內(nèi)容的正常寫入,

下面是一個(gè)例子:

使用的是docker版本的jenkins,運(yùn)行后,出現(xiàn)如下錯(cuò)誤:

[root@localhost CICD]# docker logs -f jenkins touch: cannot touch ’/var/jenkins_home/copy_reference_file.log’: Permission deniedCan not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

我jenkins掛載的目錄是 /opt/jenkins/xxxxx,root 用戶創(chuàng)建,而 jenkins user的uid為1000

所以需要進(jìn)行 chown 設(shè)置,如下:

sudo chown -R 1000:1000 /opt/jenkins

然后重啟容器,錯(cuò)誤就沒有了。

補(bǔ)充:介紹兩種從 Docker 容器寫入卷時(shí)的文件權(quán)限處理方式

說在前面

容器常常用作原生安裝工具的替代品。在主機(jī)上使用具有所需版本的容器要比使用過時(shí)的工具好的多。但是,只要容器與主機(jī)系統(tǒng)進(jìn)行交互,文件會(huì)留下錯(cuò)誤或損壞的權(quán)限。

幸運(yùn)的是,解決該問題的方法并不需要使用腳本。

問題描述

當(dāng)容器掛載一個(gè)本地目錄并將文件寫入其中時(shí),其所有權(quán)由容器內(nèi)的用戶決定:

nicholas@host:~/source$ mkdir sourcenicholas@host:~/source$ docker run -it --rm --volume $(pwd):/source --workdir /source ubunturoot@a031d11c9515:/source# mkdir subdirroot@a031d11c9515:/source# touch subdir/newfileroot@a031d11c9515:/source# exitexitnicholas@host:~/source$ ls -lR.:total 4drwxr-xr-x 2 root root 4096 Jul 16 19:35 subdir ./subdir:total 0-rw-r--r-- 1 root root 0 Jul 16 19:35 newfilenicholas@host:~/source$ rm -rf subdir/rm: cannot remove ’subdir/newfile’: Permission denied

另外,您還可能無法刪除這些目錄和擁有錯(cuò)誤所有權(quán)的文件。

解決方案1:從容器中刪除

一個(gè)非常常見的解決方案是從容器內(nèi)部更改文件和目錄的所有權(quán):

nicholas@host:~/source$ docker run -it --rm --volume $(pwd):/source --workdir /source ubunturoot@d1c3bee8bb2b:/source# ls -altotal 12drwxrwxr-x 3 1000 1004 4096 Jul 16 19:35 .drwxr-xr-x 1 root root 4096 Jul 16 19:39 ..drwxr-xr-x 2 root root 4096 Jul 16 19:35 subdirroot@d1c3bee8bb2b:/source# chown 1000:1000 subdir/ -Rroot@d1c3bee8bb2b:/source# ls -ltotal 4drwxr-xr-x 2 1000 1000 4096 Jul 16 19:35 subdirroot@d1c3bee8bb2b:/source# exitexitnicholas@host:~/source$ ls -ltotal 4drwxr-xr-x 2 nicholas lpadmin 4096 Jul 16 19:35 subdirnicholas@host:~/source$

這種方法的缺點(diǎn)是需要添加額外的邏輯,以及您需要知道運(yùn)行該容器用戶的用戶 ID 和組 ID。

解決方案2:創(chuàng)建擁有正確所有權(quán)的文件

第二種解決方案更簡(jiǎn)潔,它將使用容器內(nèi)的正確所有權(quán)創(chuàng)建文件和目錄。Docker 提供了一個(gè)參數(shù)來設(shè)置容器內(nèi)用戶的用戶 ID 和組 ID:

nicholas@host:~/source$ docker run -it --rm --volume $(pwd):/source --workdir /source --user $(id -u):$(id -g) ubuntugroups: cannot find name for group ID 1004I have no name!@bf7f355f3b65:/source$ touch newfileI have no name!@bf7f355f3b65:/source$ exitexitnicholas@host:~/source$ ls -ltotal 4-rw-r--r-- 1 nicholas nicholas 0 Jul 16 19:42 newfiledrwxr-xr-x 2 nicholas lpadmin 4096 Jul 16 19:35 subdirnicholas@host:~/source$

這種方法可以很好的幫您解決用戶 ID 和組 ID 的錯(cuò)誤。

請(qǐng)注意,出于安全目的,在容器內(nèi)以 root 身份運(yùn)行是最糟糕的做法。Dockerfile 應(yīng)始終使用 USER 指令從而避免直接使用 root 權(quán)限。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Docker
相關(guān)文章:
主站蜘蛛池模板: 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 合肥白癜风医院_[治疗白癜风]哪家好_合肥北大白癜风医院 | 高低温试验房-深圳高低温湿热箱-小型高低温冲击试验箱-爱佩试验设备 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 陕西安玻璃自动感应门-自动重叠门-磁悬浮平开门厂家【捷申达门业】 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 波纹补偿器_不锈钢波纹补偿器_巩义市润达管道设备制造有限公司 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | elisa试剂盒-PCR试剂盒「上海谷研实业有限公司」 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 | 查分易-成绩发送平台官网 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 999范文网_优质范文下载写作帮手 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 超声波分散机-均质机-萃取仪-超声波涂料分散设备-杭州精浩 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | LNG鹤管_内浮盘价格,上装鹤管,装车撬厂家-连云港赛威特机械 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 电子天平-华志电子天平厂家 |