Docker报错Operation not permitted问题的解决方法

目录
  • 前言
  • 1)docker file 生成基本镜像,这个比较简单
  • 2)容器内安装扩展包时,提示没有权限
  • 3)容器内安装扩展包
  • 4)扩展包里没有redis包,只能通过pecl安装。
  • 5)使用当前容器生成镜像
  • 总结

前言

Docker PHP需要安装 bcmath,pdo_mysql,redis3个扩展,由于权限问题,所以不能通过Dockerfile直接生成需要的镜像。这里分3部分来做,第一部分生成基本镜像,包含了可以用Dockerfile安装的PHP扩展。第二部分用镜像启动容器,手工安装扩展包最后再将容器生成最终的镜像,以后启动PHP容器的时候就不需要再安装这些包了。

1)docker file 生成基本镜像,这个比较简单

使用这个镜像制作 php:7.3-fpm-alpine

2)容器内安装扩展包时,提示没有权限

  make: /bin/sh: Operation not permitted

解决方法,启动container 加 --privileged 参数,才有真实的root权限。

否则没有权限安装包。

3)容器内安装扩展包

  docker-php-ext-install bcmath
  docker-php-ext-install pdo_mysql

4)扩展包里没有redis包,只能通过pecl安装。

可是直接用pecl安装还是提示找不到包,所以先下载对应的redis包,然后pecl指定本地的包再安装。

  # pecl install redis
  No releases available for package "pecl.php.net/redis"
  install faile

到http://pecl.php.net/package/redis 手工下载redis-4.2.0.tgz, 然后用下面的方法安装

容器里执行下列命令:

  # apk add curl
  # curl http://pecl.php.net/get/redis-4.2.0.tgz -o redis-4.2.0.tgz
  # apk add --no-cache --update --virtual .phpize-deps $PHPIZE_DEPS
  # pecl install ./redis-4.2.0.tgz
  # rm ./redis-4.2.0.tgz
  # rm -rf /usr/share/php
  # rm -rf /tmp/*
  # apk del  .phpize-deps

5)使用当前容器生成镜像

  docker commit -a "contiguous" -m "myphp73" [自己的containerID]  myphp73:v1 

至此文件都解决了,启动容器时,指定使用myphp73:v1镜像就可以了

总结

到此这篇关于Docker报错Operation not permitted问题解决的文章就介绍到这了,更多相关Docker Operation not permitted问题内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Docker报错Operation not permitted问题的解决方法

    目录 前言 1)docker file 生成基本镜像,这个比较简单 2)容器内安装扩展包时,提示没有权限 3)容器内安装扩展包 4)扩展包里没有redis包,只能通过pecl安装. 5)使用当前容器生成镜像 总结 前言 Docker PHP需要安装 bcmath,pdo_mysql,redis3个扩展,由于权限问题,所以不能通过Dockerfile直接生成需要的镜像.这里分3部分来做,第一部分生成基本镜像,包含了可以用Dockerfile安装的PHP扩展.第二部分用镜像启动容器,手工安装扩展包最

  • Windows环境下npm install 报错: operation not permitted, rename的解决方法

    前言 最近发现了一个问题,运行 npm install 命令安装依赖包,在 Mac 上的 Vagrant 装的虚拟机上没问题,在阿里云 CentOS 上也没问题,但是在 Windows 环境同样是 Vagrant 装的环境相同的虚拟机上就是不成功,报错如下: npm ERR! Error: EPERM: operation not permitted, rename '/usr/share/nginx/html/tanteng.me/node_modules/duplexify' -> '/us

  • AngularJS报错$apply already in progress的解决方法分析

    本文实例分析了AngularJS报错$apply already in progress的解决方法.分享给大家供大家参考,具体如下: 如果我们使用了AngularJS中的$scope.$apply()或者$scope.$digest(),我们很可能会遇到类似下面的错误,虽然这个错误没有太大影响,但是在日志中看起来还是很不爽的,日志中记录的异常或者错误,就应该是需要关注和解决的问题,否则就没有必要出现在日志中了. Error: [$rootScope:inprog] $apply already

  • sql2000报错Successfully re-opened the local eventlog解决方法

    报错1:Unable to read local eventlog (reason: 事件日志文件已在读取间更改. 报错2:Successfully re-opened the local eventlog - NOTE: Some events may have been missed. 微软解释: http://support.microsoft.com/default.aspx?scid=kb;en-us;811484 解决办法: 如果要防止错误日志, 中出现这些消息可以使用跟踪标志 25

  • asp在iis7报错行号不准问题的解决方法

    在Win7中做ASP开发,发现了一个非常蛋疼的问题.出现错误的时候,行号不准,很难快读定位到出问题的代码(在Win2003的IIS6就没有问题).命名代码仅有几十行,报错的行号确到了几千行(应该IIS7运行时把 asp 所有include的代码给合并到了一个文件),如图: 经过查看IIS7中的ASP配置,发现 有个 计算行号的选项,设置为true就可以了.(注意:点击右侧的应用后,虽然提示生效,但是实际没有生效.必须用 iisreset 重启IIS后才可以生效)

  • echarts报错:Error in mounted hook的解决方法

    目录 1 .具体报错内容: 2.解决办法: 3.原因: 4.扩展–import导入的方式: 总结 echarts安装创建图表时报这种错误:Error in mounted hook: “TypeError: Cannot read properties of undefined (reading ‘init’)” 1 .具体报错内容: 2.解决办法: 原先大家可能是这样的写法 import echarts from 'echarts' 后面改为这样导入就不会出错了 import * as ech

  • mybatis中foreach报错:_frch_item_0 not found的解决方法

    发现问题 在mybatis的动态sql中最常见的错误就是使用,比如:_frch_item_0 not found There is no getter for property named 'states' in 'class com.xingguo.model.User' 等等. 一般在使用时出现问题是由以下几种错误使用方式造成的: 1.参数类型不是List,特别当参数为实体类,一个属性为list时,注意collection的名字. 2.遍历时属性的名字或者字段错误 3.多个参数时没有使用@p

  • 阿里云镜像安装docker报错的问题及解决方案

    问题 使用阿里云镜像安装docker时出现如下报错,具体如下图: Malformed entry 60 in list file /etc/apt/sources.list (Component) 解决方案 注意到报错提示/etc/apt/sources.list 这个文件第60行格式错误,那么尝试把这行注释掉.先打开这个文件: $ sudoedit /etc/apt/sources.list 再使用vim的语法进入编辑模式后,找到第60行的 deb [arch=amd64] https://d

  • docker 报错 Exited (1) 4 minutes ago的原因分析

    docker 报错 1. 查看原因 docker logs nexus 2. 报错原因 OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000e7000000, 419430400, 0) failed; error='Cannot allocate memory' (errno=12) # # There is insufficient memory for the Java Runtime Environmen

  • Centos8安装docker报错(错误提示:All mirrors were tried)的问题

    Centos8从零安装Docker-ce 背景:我把服务器整个yum源的配置文件里的内容全删了. 因为我一直碰到“All mirrors were tried”的报错信息. 没错,一气之下 rm -rf /etc/yum.repos.d/* 全部!删了! 设备:腾讯云服务器 系统:CentOS 8.4 安装过程 # 注:如果当前不是root用户,请在命令头部加"sudo"(已经是root用户请忽略) # 第1步:重新构建yum源配置文件目录 # mkdir "创建目录&quo

随机推荐