美文网首页
关于Docker端口映射的学习心得

关于Docker端口映射的学习心得

作者: elesg | 来源:发表于2018-01-14 23:53 被阅读0次

    docker run后面带的参数中,-p控制端口暴露,--link建立容器间关联。

    问题描述

    上周五的时候在docker使用练习的过程中,遇到了一个问题。

    运行一个JavaWeb的blog项目,需要用到两个容器,一个是数据库mysql,一个是放了应用war包的tomcat容器。

    在这个前提下,我的数据库容器已经启动了,并且使用 -p将端口映射到主机的端口上。在主机可以直接访问到mysql,并且直接在本机运行blog项目可正常运行。
    而使用docker运行blog则总是提示数据库连接失败。

    原因

    因为容器对于主机来说是一个独立的机器,所以容器 -p所暴露的端口是其实是将该容器的端口与主机的端口关联起来,可以理解为,主机访问本地的端口时其实是将请求转发到容器的对应端口了。
    在这个前提下,其他容器无法通过localhost直接访问主机端口。

    解决方法

    为了解决这个问题,可以使用--link建立容器之间的关联,类似做了一个映射,将一个域名映射到对应容器。格式为 --link 容器名称:映射域名
    如:
    原本配置中的数据库地址为localhost:3306
    将其改为mysqldb:3306
    mysql容器名称叫blog_db
    那么在tomcat容器运行起来的时候,在docker run 后面加入--link blog_db:mysqldb即可。
    注意:在映射域名中不能使用localhost这样的保留字。

    相关文章

      网友评论

          本文标题:关于Docker端口映射的学习心得

          本文链接:https://www.haomeiwen.com/subject/rxoloxtx.html