zoukankan      html  css  js  c++  java
  • Docker容器加载宿主机的hosts解析

    前言

      公司一直在用传统的tomcat下丢war包的架构体系,随着项目的增多、服务器数量的增多、需要为此花费很多时间在不同服务器的系统环境问题上。为了技术的与时俱进和工作的运维效率等方面,笔者引入docker容器部署方式,通过Gitlab+Jenkins+Harbor体系,通过Dockerfile生成自定义镜像并放置Harbor仓库,Jenkins加上自定义Shell脚本(实现拉镜像,启动容器,容器映射端口固定,自定义日志路径)等,基本实现了持续集成的自动化部署。在测试环境试用了一段时间,发现效果还不错,但近来却发现容器中应用有报错,根据报错信息定位到容器中hosts文件解析问题。

    解决

      于是乎,通过各种试验,找到了解决方案,即在docker容器启动时通过---add-host方式加载宿主机的解析到容器中,如下:

      /usr/bin/docker run -d
        -p 8888:7001
        -p 9999:37001
        -v /webapps/health_record.war:/usr/local/tomcat-7001/webapps/health_record.war
        -v /logs/health_record:/usr/local/tomcat-7001/logs
        -v /logs/HC_logs/health_record:/usr/local/dir_samba
        $(cat /etc/hosts|awk -F ' ' '{if(NR>2){print "--add-host "$2":"$1}}')
        --name health_record8
        172.21.97.152/tomcat/tomcat-de:4.0

    说明

      重点是标红内容,将hosts文件动态读取,拼接成--add-host所要的格式,NR>2是过滤掉/etc/hosts文件中头两行(不是我想要的内容)。

    缺点

      不能动态加载宿主机的hosts文件,如果宿主机的hosts文件发生变化,容器需要同步更新,必须删除容器重新生成即可。

    完善

      此为开启容器时加参数方式,也可用其他方式,如:

        1)进入容器编辑hosts文件;   # 临时解决

        2)修改容器默认的解析文件(即自定义hosts文件);   # 将容器变成启动后不去找/etc/hosts,而是找自定义的hosts文件

  • 相关阅读:
    万豪酒店数据库遭入侵 5亿顾客信息或泄露
    网络信息安全中最热门的果然是它
    有奖问卷调查丨你有意见?可以提啊!
    业务逻辑漏洞探索之绕过验证
    一个月薪两万的Web安全工程师要掌握哪些技能?
    phpcms2008远程代码执行漏洞
    BASE64编码原理分析脚本实现及逆向案例
    源码级调试的XNU内核
    使用RSA加密在Python中逆向shell
    感恩节活动中奖名单 i春秋喊你领礼物啦!
  • 原文地址:https://www.cnblogs.com/kazihuo/p/9773500.html
Copyright © 2011-2022 走看看