我有一个 dockerized 应用程序,它需要来自 docker 主机的 nscd 套接字。所以我在运行时绑定安装套接字。DNS, getpwnam,getpwuid等都可以正常工作。奇怪的是,我发现这gethostbyname不再起作用了。例如:
docker run --rm -v /var/run/nscd/socket:/var/run/nscd/socket ubuntu hostname -i
hostname: Name or service not known
但是,在 alpine 下,它确实有效:
docker run --rm -v /var/run/nscd/socket:/var/run/nscd/socket alpine hostname -i
172.18.85.4
有谁知道为什么会中断gethostbyname以及如何解决?
更新:如果我在主机和容器上使用相同的 glibc,它仍然会中断:
ldd --version
ldd (GNU libc) 2.17
docker run --rm centos ldd --version
ldd (GNU libc) 2.17
docker run --rm -v /var/run/nscd/socket:/var/run/nscd/socket centos hostname -i
hostname: Name or service not known