缘由:dns劫持导致公司预发布环境上我负责的一个服务的对外http请求失败,dns修复之前,临时解决方法当然是在服务的机器上制定域名host,编辑/etc/hosts文件。可是服务使用docker部署,改变宿主机的/etc/hosts文件不影响docker容器的运行。怎么改变运行时docker容器的环境呢?
经过一番 查看文档和搜索之后,可以利用下面一行命令修改运行中的docker容器的环境:
docker exec "your container id" /bin/sh -c "you command"
具体到上面的问题来说:
首先找到服务的docker id:
docker ps
其次准备改变hosts文件的命令:
echo $ip $domain >> /etc/hosts
最终执行:
docker exec "your container id" /bin/sh -c "echo $ip $domain >> /etc/hosts"
本文介绍了一种解决DNS劫持导致的服务对外HTTP请求失败的方法。通过在运行中的Docker容器内直接修改/etc/hosts文件来绕过DNS解析问题,确保服务能够正常访问外部资源。

1219

被折叠的 条评论
为什么被折叠?



