缘由: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"