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

news2024/11/24 6:02:03

一、问题描述

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

调用正常:
在这里插入图片描述
调用无响应:
在这里插入图片描述

二、问题根因

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

三、解决办法

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

docker network ls

在这里插入图片描述
如果是通过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 网络模式详情

docker network inspect bridge

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/617024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 内容审查

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 内容审查 https://learn.deeplearning.ai/chatgpt-building-system?_gl=114hjbho_gaMTEwNzkwNDAyMC4xNjgyNjUxMzg4_ga_PZF1GBS1R1*MTY4NTk2NTg1Ni4xNS4wLjE2ODU5NjU4NTYuNjAuMC4w 如果你正在建立一个…

糖酵解反应动力学方程的微分方程建模

糖酵解反应动力学方程的微分方程建模 题目 对于下面的糖酵解反应: 设其满足如下动力学方程: { d d t Glucose v 1 − v 2 d d t Gluc 6 P v 2 − v 3 d d t Fruc 6 P v 3 − v 4 v 5 d d t Fruc 1 , 6 P 2 v 4 − v 5 − v 6 d d t ATP −…

electron+vue3全家桶+vite项目搭建【19】集成微信登录

文章目录 引入实现思路实现步骤 引入 electron中实际就是嵌入了一个浏览器内核,所以在electron中集成微信登录实际和web端的集成方式是一样的。 demo项目地址 实现思路 这里参考这篇文章的 electron之微信扫码登陆(不使用轮询) 实现思路&a…

【数据结构】常见排序算法——常见排序介绍、选择排序(直接选择排序、堆排序)交换排序(冒泡排序)

文章目录 1.常见排序2.选择排序2.1直接选择排序2.2堆排序 3.交换排序3.1冒泡排序 1.常见排序 2.选择排序 选择排序是一种简单但不高效的排序算法,其基本思想是从待排序的数据中选择最小(或最大)的元素放到已排序的数据末尾。具体操作步骤如下…

可能是 Python 中最火的第三方开源测试框架 pytest

一、介绍 本篇文章是《聊聊 Python 的单元测试框架》的第三篇,前两篇分别介绍了标准库 unittest 和第三方单元测试框架 nose。作为本系列的最后一篇,压轴出场的是Python 世界中最火的第三方单元测试框架:pytest。 pytest 项目地址&#xff1…

预见未来:超强元AI诞生,抓住这个机会,利用AI变现也变得更加容易

目录 一、引言 二、介绍 三、技术展现 四、元AI架构图展现 五、元AI变现技巧—商业版说明 六、后期规划 一、引言 如何利用AI变现已经成为了当今各个行业亟需解决的问题。随着人工智能技术的快速发展和普及,越来越多的企业开始将其应用于产品研发、销售流程优化、客…

一学就会---移除链表相同元素

文章目录 题目描述思路一:思路二: 题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例: 思路一: 要移除链表中值为val的结…

Lecture 3 N-gram Language Models

目录 Probabilities: Joint to Conditional 概率:联合概率到条件概率The Markov Assumption 马尔可夫假设Maximum Likelihood Estimation 最大似然估计Book-ending Sequences 序列的开头和结尾Problems with N-gram models N-gram模型的问题Smoothing 平滑处理In Pr…

Mujoco210 Ubuntu 22.04配置安装

.1 下载 1.1 解压 先是下载软件包 然后 mkdir ~/.mujoco缩包所在位置(一般在下载目录下)在终端打开,输入以下命令将压缩包解压到.mujoco文件夹中: tar -zxvf mujoco210-linux-x86_64.tar.gz -C ~/.mujoco1.2 许可问题 有说mu…

concrt140.dll丢失怎么修复?concrt140.dll丢失的最新修复教程

今天准备打开电脑软件时候,当打开我自己的软件后,弹出了一个对话框,内容是:由于找不到concrt140.dll,无法继续执行代码。重新安装程序可能会解决此问题。 我很纳闷,前几天还好好着呢。于是我上网上查了一下…

八、EGL实践

第一部分基础概念 1)引入 之前的OpenGLes应用的开发都是使用类GLSurfaceView ,然而GLSurfaceView 是内部已经实现了EGL的封装,也就是对Display,surface,context的管理。因此我们也很方便的利用GLSurfaceView.Rendere…

零基础入门网络安全/Web安全,收藏这一篇就够了

前言 由于我之前写了不少网络安全技术相关的文章和回答,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人私信问我: 我刚入门网络安全,该怎么学?要学哪些东西?有哪些方向?怎么选&…

高频面试八股文用法篇(八) == 和 equals 的区别

目录 区别 如何对equals重写 为何重写equals方法就得重写hashCode方法 扩展延伸 1、使用HashSet存储自定义类对象时为什么要重写equals和hashCode方法? 2、HashMap为什么要同时重写hashCode和equals方法 区别 一、对象类型不同 1、equals():是超类…

第二章:MySQL环境搭建

第二章:MySQL环境搭建 2.1:MySQL的下载、安装、配置 MySQL的四大版本 MySQL Community Server社区版本:开源免费、自由下载,但不提供官方技术支持,适用于大多数普通用户。MySQL Enterprise Edition企业版本&#xff1…

SpringBoot个人博客系统(含源码+数据库)

一、作品设计理念 个人博客系统是一个让个人可以通过互联网自由表达、交流和分享的平台,是个人展示自己思想、感受和经验的品牌。设计理念对于任何一个个人博客系统来说都非常重要,它直接影响到用户的使用体验和网站的整体感觉。 好的设计理念应该着眼于…

小红书热搜榜TOP1,多巴胺时尚爆火,怎么抄作业?

今夏时尚,明媚与简约并存。要说今年夏天什么最火?多巴胺必须拥有姓名。无论男女、老少、人宠,都被这股快乐风带飞。 “多巴胺”有多火?就只是彩色穿搭吗?各大博主、品牌若想加入,要怎么玩?今儿&…

Python如何解决“京东滑块验证码”(5)

前言 本文是该专栏的第51篇,后面会持续分享python爬虫干货知识,记得关注。 多数情况下使用模拟登录会遇到滑块验证码的问题,对于普通的滑块验证码,使用selenium可以轻松解决。但是对于滑块缺失验证码,比如京东的滑块验证要怎么解决呢?京东滑块验证的这个滑块缺口,每次刷…

软件测试报告模板范文来了——优秀测试报告模板流程

一、软件测试报告是什么? 软件测试报告就是当软件开发人员开发出软件之后,在上市前交由测试人员进行一系列测试,再由测试人员对过程和结果的进行记录分析的一份文档。也是测试团队的工作成果展现,通过详细的记录测试内容&#xf…

算法修炼之筑基篇——筑基二层中期(讨论一下如何解决动态方程问题,没时间了,快快快看一下)

✨博主:命运之光 🦄专栏:算法修炼之练气篇 🍓专栏:算法修炼之筑基篇 ✨博主的其他文章:点击进入博主的主页 前言:学习了算法修炼之练气篇想必各位蒟蒻们的基础已经非常的扎实了,下来…

使用FFmpeg实现最简单的视频播放

按照之前的编译步骤我们会编译得到使用ffmpeg需要的文件,现在就使用ffmpeg实现最简单的视频播放 集成ffmpeg 使用Android Studio创建一个Native C项目编译之后得到三个文件夹 把include 文件夹放到cpp目录下面。 main 目录下面新建jniLibs 目录把lib文件下的so文件…