CentOS 7 上的 Docker-Compose 错误:共享库映射问题

CentOS 7 上的 Docker-Compose 错误:共享库映射问题

我在 CentOS 7 上使用 Docker 时遇到了问题。尽管我已经成功安装了 Docker 和 Docker-Compose,但是当我运行 docker-compose --version 时,出现以下错误:

docker-compose: error while loading shared libraries: libz.so.1: failed to map segment from shared object

经过一番调查,我怀疑这可能与我的 /tmp 目录上设置的 noexec 选项有关(Docker-compose 需要从 /tmp 加载一些共享库)。以下是 cat /etc/fstab 的相关输出:

tmpfs                   /dev/shm                tmpfs   nodev,nosuid,noexec             0 0
/root/images/tmpfile.bin   /tmp   ext4    rw,noexec,nosuid,nodev    0 0
/tmp /var/tmp none rw,noexec,nosuid,nodev,bind 0 0

我需要有关如何解决此问题的建议。我应该修改 /tmp 目录的 fstab 设置吗,还是有其他解决方案?感谢您的帮助!

我正在使用CENTOS7

我有另一台服务器,其中有 cat etc/fstab

/dev/mapper/centos-root /                       xfs     defaults        1 1
UUID=6fd8c651-0add-48e8-a83d-454eb2241b26 /boot                   xfs     defaults        1 2
/dev/mapper/centos-home /home                   xfs     defaults        1 2
/dev/mapper/centos-swap swap                    swap    defaults        0 0

在此服务器上,docker-compose --version 运行良好

答案1

根据 Hbruijn 的评论。我尝试了以下方法,现在 docker-compose 可以正常工作了。

为 docker-compose tmp 文件创建新目录。

然后在 ~/.bash_profile 中进行设置。

alias docker-compose="TMPDIR=/var/var/tmp docker-compose"

现在所有相关的 docker-compose 命令均按预期工作。

相关内容