遇到此问题是因为在项目中在Docker image中对一句命令RUN echo "hosts: files dns" >> /etc/nsswitch.conf
不理解,因此记录下在查找过程中学到的内容。
首先alpine镜像中默认缺少nsswitch.conf
文件,需要在镜像添加此文件并且写入hosts: files dns
对/etc/hosts的修改才能生效。为什么要这样做呢,因为在Golang的net
包的源码net/conf.go
中,在 alpine 中/etc/nsswitch.conf 不存在,导致了先从 dns 查询,然后 file 查询,如果在alpine中设置了nsswitch.conf
,golang程序会先从file文件查询,然后从dns查询。
alpine image中/etc/hosts那些事
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前段时间在容器化golang应用的时候遇到一个问题,同样编译的程序,把程序放到centos镜像里,在程序发送请求时...
- 背景 我最初使用 Docker 的时候,每个人都在说它用起来有多简单方便,它内部的机制是有多么好,它为我们节省了多...
- 今天青石的票圈出镜率最高的,莫过于张艺谋的新片终于定档了。 一张满溢着水墨风的海报一次次的出现在票圈里,也就是老谋...