Docker :加载共享库时出错:libz.so.1:无法从共享对象Map段:不允许的操作

ogsagwnx  于 2022-11-02  发布在  Linux
关注(0)|答案(3)|浏览(129)

在上安装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安装是this

2admgd59

2admgd591#

通过重新挂载/tmp以给予卷执行权限(它是只读访问的),解决了这个问题。

sudo mount /tmp -o remount,exec
9jyewag0

9jyewag02#

配置一个用户特定的TMPDIR目录可以解决这个问题。TMPDIR环境变量是POSIX标准,但是TMP(和其他一些)也可以被普遍接受。
其他的答案是如何配置全局的、默认的临时目录。这里有两个例子,如果系统的安全策略不允许/tmp是可执行的。

第一个示例解决方案

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

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

第二个示例解决方案

配置别名(示例文件:~/.bashrc~/.bash_alias)中的一个或多个。

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

这是一个issue,似乎是一个常见的绊脚石。一些挖掘表明,它可能与PyInstaller有关,而不是专门的docker-compose。

dxpyg8gm

dxpyg8gm3#

通过在运行cmd之前设置export TMP=/var/tmp,已在RHEL中修复

相关问题