Docker 容器中的域名解析问题

问题描述

假如,你的开发环境是用 Docker 搭建的,当用 CURL 来访问局域网内另外一台服务器的 API 时,会出现域名无法解析的情况。

出现类似下面的错误提示信息:

cURL error 6: Could not resolve host

Couldn't resolve host. The given remote host was not resolved.

原因是 Docker 容器无法解析局域网内的域名,就算你配置了本地主机的 hosts 域名映射也不行。Docker 环境不同于 wamp 或 xampp,对于局域网内的域名解析,Docker 需要到 Docker 容器中配置 hosts 文件。

解决方法

进入 Docker 容器后,在 hosts 文件中,配置域名解析。

# 进入 docker 容器
docker exec -it  my_web /bin/bash

# 修改 hosts 文件
vi /etc/hosts

# 添加域名解析规则
192.168.99.100  example.test

# 或者,直接追加字符串到指定的文件末尾
echo '192.168.99.100  example.test' >> /etc/hosts

保存退出后,利用 ping 命令验证一下,是否可以 ping 通。

docker-machine.exe ssh default

ping example.test

需要注意的是:每次重启容器(服务)后,容器中的 /etc/hosts 文件新增的配置就会失效,故需要重新配置一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值