docker 撰写:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作
docker compose: Error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted
安装 docker 和 docker-compose 之后:
NAME="Red Hat Enterprise Linux Server"
VERSION="7.6 (Maipo)"
执行时:
sudo docker-compose -version
它returns:
Error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted
应该return:
docker-compose version 1.25.0-rc2, build 661ac20e
从 docker-compose 安装是 this
通过重新挂载 /tmp 以授予卷执行权限解决了这个问题(可以只读方式访问)。所以这解决了:
sudo mount /tmp -o remount,exec
配置用户特定的 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"
这是一个 issue 似乎是一个常见的绊脚石。一些挖掘表明它可能与 PyInstaller 有关,而不是 docker-compose 具体。
安装 docker 和 docker-compose 之后:
NAME="Red Hat Enterprise Linux Server"
VERSION="7.6 (Maipo)"
执行时:
sudo docker-compose -version
它returns:
Error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted
应该return:
docker-compose version 1.25.0-rc2, build 661ac20e
从 docker-compose 安装是 this
通过重新挂载 /tmp 以授予卷执行权限解决了这个问题(可以只读方式访问)。所以这解决了:
sudo mount /tmp -o remount,exec
配置用户特定的 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"
这是一个 issue 似乎是一个常见的绊脚石。一些挖掘表明它可能与 PyInstaller 有关,而不是 docker-compose 具体。