• 技术文章 >运维 >Docker

    docker无法解析域名怎么办

    长期闲置长期闲置2022-06-27 11:00:39原创279

    解决方法: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转发。

    本教程操作环境: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 文件新增的配置就会失效,故需要重新配置一下。

    推荐学习:《docker视频教程

    以上就是docker无法解析域名怎么办的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Docker
    上一篇:windows7支持使用docker吗 下一篇:docker运行在物理机还是虚拟机上
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• docker是容器吗• docker容器重启后数据会丢吗• docker虚拟化是什么• docker是哪个公司的产品• docker进程隔离是什么意思
    1/1

    PHP中文网