我运行一个 Docker 容器,其中包含一个需要重新定位的可执行文件和共享库的卷。
我得到:error while loading shared libraries: /opt/J9/bin/libj9thr24.so: cannot restore segment prot after reloc: Permission denied
正如这里建议的:http://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/
我做了chcon -Rt svirt_sandbox_file_t /opt/J9
这样至少我可以启动该程序。我跑步docker run --rm -v /opt/J9:/opt/J9:Z ...
(我也尝试过使用“z”)
但为了允许库在内存中重定位,我发现它需要:chcon -t texrel_shlib_t /opt/J9/bin/*
但是一个文件上只能有一个标签,我怎样才能将两者结合起来呢?
我在跑步Docker version 1.8.1.fc22, build 32b8b25/1.8.1