Docker 创建镜像时提示权限不足

前一阵子在公司的内网机器上创建镜像,php 的项目镜像一直无法创建成功,总是卡在安装 php 扩展时的那一层命令,提示的是在对扩展进行编译时没有权限,错误就是下边图上的提示。


img_v3_0088_f7e3c152-8f24-4274-8ec4-d56d840f5fdg.jpg

这个时候开启了漫长的排错过程。首先既然提示权限不足了,先切了 root 再说,换成 root 执行依然报这个问题,排除账号权限问题。

再对比其他镜像 nginx、redis、mysql 镜像能够正常创建,排除 docker 服务出现问题。这个时候已经陷入了僵局,明明本地能创建成功的,为什么换个机器不行了。


UYr0fQXfl2.jpg

收拾下糟糕的心情,继续排错,既然我的本地能创建成功,首先能确定是 Dockerfile 文件是没有问题,配置也是正确的,那就看下内网的机器 Docker 的版本,果然版本存在差异,内网的为19,本地的是24版本,差比较多了,但是想着版本不对和权限有什么关系,果断跳过这个差异点。

再次回到错误的原点,既然是构建镜像时那一层的错误,那我先去掉那层扩展的构建试试,果然去掉后是正常的,这就更加诡异了,php 的扩展方式是按照官方镜像教程做的,没道理会报错,接着就想着容器既然已经创建了,就进入容器内执行安装扩展试试,该死的容器内执行命令还是提示无权限。

尝试问了同事、GPT都无解,已经逐渐红温走向了暴躁。


5b4a44c7821161662cb849b3c475daa1.jpg

最后其实还有一张牌问 google,我描述了一下自己碰到的问题,在 github 上找到了答案,问题的根本还是 docker 的版本过低,至于解迷的过程如下:

我所使用的 Dockerfile 镜像构建中,php 的构建层为 FROM php:8.2.17-fpm-alpine3.18,问题就出在了 alpine3.18 这个 linux 镜像上,原来 alpine3.14 发布后更新了一个叫做 faccessat2 的系统调度,这个就是专门负责系统上的文件权限检测的,并且更新文档说明了低于 docker 20的版本会有问题,至此镜像无法构建的问题算是彻底破案了!


image.png

解决方法

1、升级 docker ,这个最是简单粗暴,但是如果是线上环境或是多人共享主机的情况下慎用
2、修改 docker 后台运行配置,强制指定文件权限检测不使用 faccessat2 的系统调度。首先下载 docker 的默认配置文件,是一个json文件 https://github.com/moby/moby/blob/master/profiles/seccomp/default.json,下载完成后修改第一行配置 defaultAction ,将 SCMP_ACT_ERRNO 改为 SCMP_ACT_TRACE,然后建议把文件放到 docker 配置目录下 /etc/docker,
配置文件准备好了,接下来 docker 需要先停止后台服务,在启动 docker 指定参数,其中参数中的文件路径为刚才配置文件的绝对路径

dockerd --seccomp-profile=/etc/docker/default.json &

3、在 docker run 时修改默认的配置,没试过,只能甩个官方的链接
https://docs.docker.com/engine/security/seccomp/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容