关于Docker容器内部无法解析域名问题的解决
发现问题
最近工作中部署一个项目,在项目内部需要访问外网。给某云上传文件,但是一直报unknown host
,无法解析域名,然后找了好久原因,下面废话不多说,来一起看看详细的解决方法:
解决方法
Linux系统默认没有打开IP转发功能,要确认IP转发功能的状态,可以查看/proc文件系统,使用下面命令:
cat /proc/sys/net/ipv4/ip_forward 0
如果上述文件中的值为0,说明禁止进行IP转发;如果是1,则说明IP转发功能已经打开,要想打开IP转发功能,可以直接修改上述文件:
echo 1 > /proc/sys/net/ipv4/ip_forward
把文件的内容由0修改为1。禁用IP转发则把1改为0。
上面的命令并没有保存对IP转发配置的更改,下次系统启动时仍会使用原来的值,要想永久修改IP转发,需要修改/etc/sysctl.conf文件,修改下面一行的值:
net.ipv4.ip_forward = 1
修改后可以重启系统来使修改生效,也可以执行下面的命令来使修改生效:
sysctl -p /etc/sysctl.conf
进行了上面的配置后,IP转发功能就永久开启了
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
详解docker 允许主机ssh连接到docker容器中
在docker容器中,安装好ssh: 1)替换掉容器中的安装源为163源 2)安装ssh服务 apt-get update apt-get install openssh-server 3)添加目录,修改ssh配置文件 mkdir -p /var/run/sshd vim /etc/pam.d/sshd 找到 session required pam_loginuid.so 这一行,将它注释掉 4)添加要链接过来的主机公钥 将公钥放到/root/.ssh/authorized_ke
-
浅谈Docker安全机制内核安全与容器之间的网络安全 原创
内核安全 内核为容器提供两种技术 cgorups和namespaces,分别对容器进行资源限制和资源隔离,使容器感觉像是在用一台独立主机环境. ·cgroups资源限制 容器本质上是进程,cgroups的存在就是为了限制宿主机上不同容器的资源的使用量,避免单个容器耗尽宿主机资源而导致其他容器异常. ·namespaces资源隔离 为了使容器处在独立的环境中,docker使用namespaces技术来隔离容器,使容器与容器之间,容器与宿主机之间相互隔离. docker目前仅对uts.IPC.pid
-
详解在Docker容器中运行Spring Boot应用
spring Boot简化了Spring应用的开发过程,遵循约定优先配置的原则提供了各类开箱即用(out-of-the-box)的框架配置.另一方面,Spring Boot还具备将代码直接构建为可执行jar包的能力,这个jar包是一个可以独立运行的部署单元.基于以上特性,现在普遍认为Spring Boot提供了一种快速构造微服务(Micro-Service)的能力. Docker与Spring Boot Docker是一种Linux容器的实现,Linux容器是基于进程的轻量级资源隔离技术,每一个
-
在Centos7 中更改Docker默认镜像和容器的位置
一.Why? 通常,当你开始使用docker时,我们并不太关心Docker 用于存储镜像和容器的默认目录.当使用Docker进行更多实验时,Docker开始占用大量的空间时,你不得不按下紧急按钮.所以现在是时候把故障排除放在如何改变docker的默认存储位置了.费了很大力浏览了许多网站和论坛后,我无法确定在Centos7主机上更改Docker镜像和容器的默认目录的步骤.这篇文章提供了特定于Centos7的说明(它也适用于RHEL7).对于Debian,我可以找到很多文档和"如何"在互联
-
关于Docker容器内部无法解析域名问题的解决
发现问题 最近工作中部署一个项目,在项目内部需要访问外网.给某云上传文件,但是一直报unknown host,无法解析域名,然后找了好久原因,下面废话不多说,来一起看看详细的解决方法: 解决方法 Linux系统默认没有打开IP转发功能,要确认IP转发功能的状态,可以查看/proc文件系统,使用下面命令: cat /proc/sys/net/ipv4/ip_forward 0 如果上述文件中的值为0,说明禁止进行IP转发:如果是1,则说明IP转发功能已经打开,要想打开IP转发功能,可以直接修改上述
-
如何在docker容器内部安装kibana分词器
步骤: 1.在虚拟机目录下新建docker-compose.yml文件,然后进入yml文件编辑 vi docker-compose.yml 2.在yml文件中添加如下代码: version: "3.1" services: elasticsearch: image: daocloud.io/library/elasticsearch:6.5.4 restart: always container_name: elasticsearch ports: - 9200:9200 #将分词器映
-
在宿主机上执行docker容器内部的shell或程序方式
为了避免反复进入docker容器内部操作,可以将一系列容器内部的指令由宿主机来操作完成. 在宿主机(作者主机为windows7)上执行centos容器(name为centos-1)中/usr目录下的"printer"可执行程序,该程序输出为打印"123". C:\Users\Administrator>docker exec -it centos-1 /bin/bash -c "cd usr && ./printer" 12
-
docker容器无法访问宿主机端口的解决
最近在工作时遇到一个问题,docker容器无法访问宿主机的redis,telent6379端口不通. 经排查发现,该服务器启用了防火墙,防火墙把6379的端口的访问授权给docker0网卡访问即可. 操作如下: firewall-cmd --permanent --zone=trusted --change-interface=docker0 firewall-cmd --reload 补充知识:docker 启动mysql 容器出错Ports are not available: listen
-
Docker容器开jupyter不能访问到的解决方法
在本项目中使用了docker容器搭建环境,Dockerfile 如下: FROM tensorflow/tensorflow:1.14.0-gpu-py3 RUN pip install scipy==1.3.3 RUN pip install requests RUN pip install Pillow RUN pip install matplotlib RUN pip install pandas RUN pip install keras==2.2.4 RUN pip install
-
docker容器内网络请求缓慢问题解决
在使用docker的过程中发现了几个问题,在docker里进行的网络请求经常会失败,比如npm install以及bundle install等操作,或者是作为中间层在应用中去获取api数据的过程经常会出现timeout等情况,所以开始探究docker的网络机制,以解决网络请求太慢的问题. 一.docker的网络模式 1.none 当配置为none时,docker容器网络无法输入输出,与世隔绝. 2.bridge 默认为bridge模式,docker有自己的虚拟网卡,通过桥接的方式从主机获得网络
-
详解如何解决docker容器无法通过IP访问宿主机问题
问题起源 在使用 docker 的过程中我不幸需要在 docker 容器中访问宿主机的 80 端口, 而这个 80 端口是另外一个容器 8080 端口映射出去的. 当我在容器里通过 docker 的网桥 172.17.0.1 访问宿主机时, 居然发现: curl: (7) Failed to connect to 172.17.0.1 port 80: No route to host 查找问题原因 可以确定的是容器与宿主机是有网络连接的, 因为可以在容器内部通过 172.17.0.1 Ping
-
Node.js服务Docker容器化应用实践小结
本篇不会讲解 Docker 命令的使用.安装等,因为在之前一篇文章一文零基础教你学会 Docker 入门到实践中也已经讲解的很详细了,不清楚的可以点击链接回头在重新看下,本篇重点是介绍 Node.js 项目如何进行 Docker 容器化及一些实践优化,还有一些常见的问题,当然如果还有其它使用上的问题也欢迎大家在评论区进行留言补充. 作者简介:五月君,Nodejs Developer,热爱技术.喜欢分享的 90 后青年,公众号「Nodejs技术栈」,Github 开源项目 www.nodejs.r
-
解决Docker容器没有vim命令的方法
发现问题 今天在尝试修改Docker容器内文件时, 发现容器内并没有vim命令, 返回了: vim my.cnf bash: vim: command not found 本篇文章就来记录下如何解决此问题. 解决方案 仍然在docker容器内部, 首先运行以下命令, 并耐心等待一会儿: apt-get update 完成后运行: apt-get install vim 等待安装完成后, 运行以下命令, 验证是否安装成功: vim 如果返回了类似以下界面则证明vim安装成功: VIM安装成功返回
-
Docker容器镜像加载及底层基本原理深入解析
目录 前言 一.Docker run 二.Docker底层原理 1.Docker是怎么工作的 2.为什么Docker比虚拟机快 三.Docker镜像 1.镜像 2.联合文件系统UnionFS 3.Docker镜像的加载原理 4.Docker镜像分层理解 四.Docker容器 五.Docker镜像与容器的形象比喻 前言 回想上学的时候,某老师神采奕奕的讲解着操作系统某个知识点原理,可谓是激情澎湃,我环顾周围基友们,脸上懵逼两字清晰可见,毫不含糊,恍然大悟原来是在讲天书.为了不让大家脸上呈现懵逼二字
随机推荐
- 点击文字链接弹出确认框基于js Confirm实现
- 关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
- jQuery实现返回顶部功能适合不支持js的浏览器
- 利用AJAX实现WordPress中的文章列表及评论的分页功能
- android真机调试时无法显示logcat信息的解决方法介绍
- php at(@)符号的用法简介
- js表单元素checked、radio被选中的几种方法(详解)
- NodeJS学习笔记之Connect中间件模块(一)
- 用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
- jQuery maxlength文本字数限制插件
- Ruby on Rails中的ActiveResource使用详解
- jQuery产品间断向下滚动效果核心代码
- C++标准之(ravalue reference) 右值引用介绍
- js switch case default 的用法示例介绍
- Linux破解root密码的教程
- Android Call(打电话)的基本知识详解
- php中return的用法实例分析
- 讲解ASP方面的知识比较全的asp学习教程
- Asia域名超30万_收益7000万人民币
- TensorFlow模型保存/载入的两种方法