关于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转发功能就永久开启了
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
在Centos7 中更改Docker默认镜像和容器的位置
一.Why? 通常,当你开始使用docker时,我们并不太关心Docker 用于存储镜像和容器的默认目录.当使用Docker进行更多实验时,Docker开始占用大量的空间时,你不得不按下紧急按钮.所以现在是时候把故障排除放在如何改变docker的默认存储位置了.费了很大力浏览了许多网站和论坛后,我无法确定在Centos7主机上更改Docker镜像和容器的默认目录的步骤.这篇文章提供了特定于Centos7的说明(它也适用于RHEL7).对于Debian,我可以找到很多文档和"如何"在互联
-
详解在Docker容器中运行Spring Boot应用
spring Boot简化了Spring应用的开发过程,遵循约定优先配置的原则提供了各类开箱即用(out-of-the-box)的框架配置.另一方面,Spring Boot还具备将代码直接构建为可执行jar包的能力,这个jar包是一个可以独立运行的部署单元.基于以上特性,现在普遍认为Spring Boot提供了一种快速构造微服务(Micro-Service)的能力. Docker与Spring Boot Docker是一种Linux容器的实现,Linux容器是基于进程的轻量级资源隔离技术,每一个
-
浅谈Docker安全机制内核安全与容器之间的网络安全 原创
内核安全 内核为容器提供两种技术 cgorups和namespaces,分别对容器进行资源限制和资源隔离,使容器感觉像是在用一台独立主机环境. ·cgroups资源限制 容器本质上是进程,cgroups的存在就是为了限制宿主机上不同容器的资源的使用量,避免单个容器耗尽宿主机资源而导致其他容器异常. ·namespaces资源隔离 为了使容器处在独立的环境中,docker使用namespaces技术来隔离容器,使容器与容器之间,容器与宿主机之间相互隔离. docker目前仅对uts.IPC.pid
-
详解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容器内部无法解析域名问题的解决
发现问题 最近工作中部署一个项目,在项目内部需要访问外网.给某云上传文件,但是一直报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镜像与容器的形象比喻 前言 回想上学的时候,某老师神采奕奕的讲解着操作系统某个知识点原理,可谓是激情澎湃,我环顾周围基友们,脸上懵逼两字清晰可见,毫不含糊,恍然大悟原来是在讲天书.为了不让大家脸上呈现懵逼二字
随机推荐
- Javascript 面向对象编程(coolshell)
- 实例代码详解jquery.slides.js
- nginx配置引发的403问题解决办法
- 使用GSON库将Java中的map键值对应结构对象转换为JSON
- iOS逆向工程使用dumpdecrypted工具给App脱壳
- JS 密码强度验证(兼容IE,火狐,谷歌)
- AndroidStudio利用android-support-multidex解决64k的各种异常
- C#实现txt定位指定行完整实例
- C#生成指定范围内的不重复随机数
- Dockerfile 部署java web的环境详解
- Linux下使用docker搭建Openvpn代理的方法
- MySQL中Union子句不支持order by的解决方法
- CentOS 6.5安装mysql5.7教程
- Android Doze模式启用和恢复详解
- IE8中使用javascript动态加载CSS的解决方法
- JavaScript动态创建div等元素实例讲解
- Google排名优化的几个影响因素
- C#将图片和字节流互相转换并显示到页面上
- Django CSRF跨站请求伪造防护过程解析
- 生产环境之Nginx高可用方案实现过程解析