docker内无法通过域名访问外网问题解决方案一

这篇具有很好参考价值的文章主要介绍了docker内无法通过域名访问外网问题解决方案一。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题描述

docker中有的时候需要从容器内向外网环境进行访问,这个时候我边出现了一个诡异的问题,从容器的宿主机直接通过curl命令使用域名可以正常的访问并返回正确的解决,但是从容器中向外调用外网环境的这个域名的时候,curl命令会被卡住,一直到超时都没有任何返回数据,但是一个很神奇的事情是,如果将该域名换成对应的IP的时候,从容器内向外调用外网环境的这个IP的时候,这个时候就可以正确的返回结果

调用正常:
docker内无法通过域名访问外网问题解决方案一
调用无响应:
docker内无法通过域名访问外网问题解决方案一

二、问题根因

出现了上面的问题,通过查看调用命令返回的结果,发现出现该问题的主要原因是由于在域名调用的过程中会出现在容器内域名无法解析的问题.

三、解决办法

3.1 查看docker容器的虚拟网桥配置

docker network ls

docker内无法通过域名访问外网问题解决方案一
如果是通过run命令来启动容器的话,只需要增加 --net=host这个参数,具体命令如下所示:

docker run -d --net=host --name nginx-1 nginx:latest

下面我们来讲解一下上面的这个启动命令中增加 –net=host这个配置参数的作用,该配置的作用主要是表明该容器不会虚拟自己的网卡,配置自己的IP,而是使用宿主机的IP和端口,所以使用这个命令的时候,docker run命令中的 -p也会失效,因为它本来就使用的是宿主机的IP和端口,根本无需进行端口映射,通过上面的配置,我们便可以从容器内通过域名正常的访问外网环境啦

四、知识点补充

通过上面碰到的这个问题,我们知道了docker容器网络模式相关的一些东西,接下来我们就来拓展一下docker网络模式的详细内容。
docker自身有四种网络模式,还有一些自定义的网络模式,我们今天主要来了解一下自身的四种网络模式

Host:容器使用宿主机的网卡是IP端口,不会虚拟自己的网卡,也不会配置自己的IP;设置命令如下:
docker run --net=host
Container:容器不会虚拟自己的网卡,也不会配置自己的IP,而是和一个指定容器共享IP和端口范围。
docker run --net=container:containerName/containerId
None:关闭容器网络功能。
docker run --net=none
Bridge:该模式会为每一个容器虚拟网卡并设置IP,并将容器连接到宿主机中创建好的docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信
docker run --net=bridge

在启动容器的时候,我们可以通过 –net 参数来指定使用哪种网络模式,默认docker容器会使用 bridge 网络模式
通过下面的几个命令,我们可以查看每一种网络往事的详细信息:

查看 bridge 网络模式详情文章来源地址https://www.toymoban.com/news/detail-473864.html

docker network inspect bridge

到了这里,关于docker内无法通过域名访问外网问题解决方案一的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker搭建minio服务器,解决内网穿透后外网无法访问问题

    搭建MinIo 内部搭建的MinIo服务器映射到外网后访问文件资源一直报认证异常,经资料查阅minio有自己一套加密校验逻辑,访问时不可改动其桶名 解决内网穿透minio访问异常问题 通过nginx进行代理,代理时不改变访问路径,外网映射时映射nginx的代理地址 修改Nginx配置

    2024年02月11日
    浏览(43)
  • 网站打不开域名无法访问是怎么回事?(网页无法访问域名被封暂停解析的解决方案)

    文章来源:三一博客 首发地址:网站打不开域名无法访问是怎么回事?(网页无法访问域名被封暂停解析的解决方案) - 知识库 - 0oD三一o0博客 近来三一遇到一个比较头疼的问题,日常更新博客网站(www.o0310o.com)的时候会遇到时而打不开网站,提示“域名解析错误请检查域

    2024年01月20日
    浏览(45)
  • Docker容器内部无法访问外网原因之一

    部署了一个Docker环境,宿主机可以访问Internet,启动了一个容器发现容器里的服务无法访问Internet,Docker网络使用的是桥接(bridge)模式。 使用Docker桥接模式启动的容器,宿主机如果可以访问外网,按理来说Docker容器本身也可以访问外网的。其原理:容器网卡与宿主机的dock

    2023年04月25日
    浏览(44)
  • 虚拟机无法访问外网的问题

    配置: 1、虚拟机采用NAT模式进行配置 2、虚拟机IP:192.168.109.101,掩码:255.255.255.0,网关:192.168.109.2 3、虚拟机网络编辑器:网关192.168.109.2,网段192.168.109.0,不启用DHCP 4、VMnet8配置:IP192.168.109.3,掩码255.255.255.0,网关不填 现象: 1、宿主机可以ping虚拟机192.168.109.101,且x

    2023年04月09日
    浏览(38)
  • Docker 在内网服务器通过配置代理访问外网拉取镜像

    该文章引用自:http://roc.havemail.cn/archives/1640.html 感谢作者,我放到这里给自己留个备份。 作者原文介绍了《详解 Docker 的三种网络代理配置》,按理说,在服务器上 直接配置 http_proxy 和 https_proxy 代理 ,所有的服务就都能访问外网了。 但是实际操作过程中,发现配置了这两个

    2024年02月15日
    浏览(37)
  • MacOS访问某局域网域名存在问题,但是ip可以正常访问的问题解决方案

    背景: 公司服务器部署wiki,之前macos访问wiki服务都是通过ip:8090形式访问,后来给wiki服务配置了域名wiki:8090,后macos浏览器连接同样的网络却一直没办法正常域名访问wiki,但可以ip访问wiki,但是其他同事们都可以正常访问。 解决方案: 1. 首先排查本地域名解析是否正确 ns

    2024年01月17日
    浏览(92)
  • Windows云服务器 PHP搭建网站外网无法访问的问题

    前言:本人在华为云上租了一台windows的云主机,可以远程访问桌面的那种,然后想搭个网站,最开始想到的是IIS,测试了下用html的文件,没有问题。但是,php文件却不能用,因为少了PHP环境。 因此就准备去搭个PHP环境,看了大佬们的教程,感觉很麻烦,所以就放弃了。 然后

    2024年02月09日
    浏览(53)
  • CentOS 7安装docker 及docker 不能被外网访问的问题

    uname -r 查看linux内核版本。要求linux内核版本是3.1.0以上。 netstat -tuln | grep 53  查看端口 以下是下载最新的docker的方式: 对于 CentOS 系统: 安装所需的软件包: sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2.设置 Docker 的存储库: sudo yum-config-manager --add-repo https://downlo

    2024年02月04日
    浏览(32)
  • 内网IP怎么用域名让外网访问,域名动态解析和静态区别?

    域名解析是将域名与公网IP进行对应关系,实现访问域名即访问到对应IP应用的方式。域名解析分静态域名解析和动态域名解析的区别,它们的区别在哪?内网IP服务器怎么用域名让外网连接访问 ? 这些都是需要我们有所了解掌握的。 这里不但涉及域名解析,同时涉及了内外

    2024年02月11日
    浏览(46)
  • 外网出口IP存在大量恶意域名访问,如何排查

    外网出口IP存在大量恶意域名访问,如何排查 以下工作场景中,发现外网出口IP存在大量恶意域名访问是一个严重的安全问题,需要及时排查和处理。通过对相关系统和网络设备进行仔细检查、安全日志审计和流量分析,可以帮助确定具体的恶意活动来源,并采取相应的应对

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包