docker compose:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作

新手上路,请多包涵

安装 dockerdocker-compose 后:

 NAME="Red Hat Enterprise Linux Server"
VERSION="7.6 (Maipo)"

执行时:

 sudo docker-compose -version

它返回:

Error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted

它应该返回:

 docker-compose version 1.25.0-rc2, build 661ac20e

从 docker-compose 安装是 这样

原文由 Roberto Gonçalves 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 4.3k
2 个回答

通过重新挂载 /tmp 以授予卷执行权限来解决它(它可以通过只读方式访问)。所以这解决了:

 sudo mount /tmp -o remount,exec

原文由 Roberto Gonçalves 发布,翻译遵循 CC BY-SA 4.0 许可协议

配置用户特定的 TMPDIR 目录可以解决问题。 TMPDIR 环境变量是 POSIX 标准,但 TMP(和其他一些)也可以被普遍接受。

其他答案解决了如何配置全局默认临时目录。如果系统的安全策略不允许 /tmp 可执行,这里有两个示例。

第一个示例解决方案

mkdir $HOME/tmp
export TMPDIR=$HOME/tmp
docker-compose --version

为方便起见,在创建目录后,可以将“导出”语句放在 shell 的配置文件配置中(例如: ~/.bash_profile~/.bashrc )。

第二个示例解决方案

配置别名(示例文件: ~/.bashrc~/.bash_alias )。

 alias docker-compose="TMPDIR=${HOME}/tmp docker-compose"


这个 问题 似乎是一个常见的绊脚石。一些挖掘表明它可能与 PyInstaller 相关,而不是具体的 docker-compose。

原文由 Kevin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题