docker容器内为什么能解析宿主机的hosts文件

在这里插入图片描述

Docker容器可以通过特定的网络设置来解析宿主机的hosts文件,这是因为Docker容器在创建网络时,会自动将宿主机的DNS配置信息传递给容器。

当你启动一个Docker容器时,如果没有指定任何DNS相关的选项,Docker默认会使用宿主机的DNS配置。这包括/etc/resolv.conf文件中的信息,该文件通常包含了DNS服务器的地址。

例如,以下命令将启动一个新的Docker容器,而不需要指定任何特殊的DNS设置,因此它会自动使用宿主机的DNS配置:

docker run -it --rm ubuntu

在这个容器内部,/etc/resolv.conf通常会包含如下内容:

root@62283216a8ee:/# cat /etc/resolv.conf
# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.

nameserver 192.168.49.1
search .
options edns0 trust-ad ndots:0

# Based on host file: '/etc/resolv.conf' (legacy)
# Overrides: []
# Option ndots from: host

可以发现容器中的nameserver是宿主机的IP(192.168.49.1),这样宿主机会成为容器的DNS服务器,所以就会解析/etc/hosts文件中的记录,因此可以在宿主机中的/etc/hosts定义自定义域名供容器使用。

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gopyer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值