docker无法解析域名怎么办

2022年6月30日 23点热度 0人点赞

解决方法:1、用“cat /proc/sys/net/ipv4/ip_forward”查看“/proc”文件系统,确认系统是否打开ip转发功能;2、用“echo 1 > /proc/sys/net/ipv4/ip_forward”将文件内的内容由0修改为1即可打开ip转发功能;3、修改“/etc/sysctl.conf”文件内“ip_forward”的值可以永久修改ip转发。

docker无法解析域名怎么办插图

本教程操作环境:linux7.3系统、docker19.03版、Dell G3电脑。

docker无法解析域名怎么办

一直报unknown host,无法解析域名,来一起看看详细的解决方法:

解决方法

1、Linux系统默认没有打开IP转发功能,要确认IP转发功能的状态,

可以查看/proc文件系统,使用下面命令:

04.png

出于安全考虑,Linux系统默认是禁止数据包转发的。

所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。配置Linux系统的ip转发功能,首先保证硬件连通,然后打开系统的转发功能

cat /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发,1表示允许。

2、如果上述文件中的值为0,说明禁止进行IP转发;

如果是1,则说明IP转发功能已经打开,要想打开IP转发功能,可以直接修改上述文件:

echo 1 > /proc/sys/net/ipv4/ip_forward

把文件的内容由0修改为1。禁用IP转发则把1改为0。

3、上面的命令并没有保存对IP转发配置的更改,下次系统启动时仍会使用原来的值

要想永久修改IP转发,需要修改/etc/sysctl.conf文件,修改下面一行的值:

net.ipv4.ip_forward = 1

修改后可以重启系统来使修改生效,也可以执行下面的命令来使修改生效:

sysctl -p /etc/sysctl.conf

进行了上面的配置后,IP转发功能就永久开启了

扩展知识:

进入 Docker 容器后,在 hosts 文件中,配置域名解析。

# 进入 docker 容器
docker exec -it  my_web /bin/bash
# 修改 hosts 文件
vi /etc/hosts
# 添加域名解析规则
192.168.99.100  example.test
# 利用 ping 命令验证一下,是否可以 ping 通
ping example.test

如果你的 Docker 宿主主机没有 ping 命令,你可以安装一下;当然,如果你不想安装的话也无所谓,你可以通过其他的方式来验证域名解析是否已经得到解决。

需要注意的是:每次重启容器(服务)后,容器中的 /etc/hosts 文件新增的配置就会失效,故需要重新配置一下。

推荐学习:《》

99君

这个人很懒,什么都没留下