资讯专栏INFORMATION COLUMN

Docker容器间的通讯

kevin / 666人阅读

摘要:玩了后相信很多童鞋都会遇到一个问题就是我们部署的应用的容器连不上另一个数据库容器这个就好玩了在我多方查看查找资料问大佬的方式下终于找到了解决方案首先我们准备一个项目这里我以为例子首先我们把你的项目打包一个包出来改后缀为然后上传到你的上面去解

玩了docker后相信很多童鞋都会遇到一个问题,就是我们部署的应用的容器连不上另一个数据库容器

这个就好玩了,在我多方查看,查找资料问大佬的方式下,终于找到了解决方案

首先我们准备一个项目,这里我以springboot为例子

首先我们把你的项目打包一个war包出来,改后缀为.zip

然后上传到你的linux上面去

解压到你的临时数据卷挂载目录(解压用unzip工具,或者直接本地解压然后上传ROOT中)

好了,接下来就是linux命令操作了

先把你的数据库挂起来

docker run -d -p 3306:3306 --name mysql mysql:5.7.24

(数据表啥的自己搞,我另一篇文章里面有写怎么加载数据卷实现数据库的数据持久化的)

以挂载卷的形式启动你的tomcat

docker run -d -p 8080:8080 
--name sbv /usr/local/docker/tomcat/ROOT/:/usr/local/tomcat/webapps/ROOT 
tomcat

run 启动
-d 放进后台
-p 8080:8080 将宿主机的8080端口映射到容器的8080端口(左宿右容)
--name 给你启动的容器起个名字,我这里是sbv
--v 将宿主机的目录挂载到容器中去启动,和替换差不多的意思

跑起来了,是吧,你上你的应用访问下试试
我这边是报错了

没错,就是这样子,然后我们排除下这问题
由于docker是沙箱机制的,所以我们可以认为容器内部是独立的一个系统,不能连接到外部的网络

那么怎么解决呢??

莫担心,docker官方已经给我们想好了
https://docs.oracle.com/cd/E3...

--link 父容器:当前连接名 -v

因此我们只需要用--link命令指定一个父容器即可

这里的话我们可以这样写

docker run -d -p 8080:8080 
--name sbv 
--link mysql:tomysql 
-v /usr/local/docker/tomcat/ROOT/:/usr/local/tomcat/webapps/ROOT 
tomcat

注意我这边的父容器也就是我的数据库名字是mysql,然后当前连接名字是tomysql记住这个名字,等下还要用呢

把你的数据库连接配置改成这个这个连接名,然后以--link的方式启动即可访问数据库了

当然你可以连接多个容器来启动你的app

docker run -d 
-p 8080:8080 
--name sbv 
--link mysql:tomysql -v 
--link redis:toredis 
-v /usr/local/docker/tomcat/ROOT/:/usr/local/tomcat/webapps/ROOT 
tomcat

另一个方案是改host文件的方式,我没试,因为时间原因,同时也觉得麻烦,有空的童鞋们记几试试啊

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48234.html

相关文章

  • Docker容器间的通讯

    摘要:玩了后相信很多童鞋都会遇到一个问题就是我们部署的应用的容器连不上另一个数据库容器这个就好玩了在我多方查看查找资料问大佬的方式下终于找到了解决方案首先我们准备一个项目这里我以为例子首先我们把你的项目打包一个包出来改后缀为然后上传到你的上面去解 玩了docker后相信很多童鞋都会遇到一个问题,就是我们部署的应用的容器连不上另一个数据库容器 这个就好玩了,在我多方查看,查找资料问大佬的方式下...

    sf_wangchong 评论0 收藏0
  • Docker容器间的通讯

    摘要:玩了后相信很多童鞋都会遇到一个问题就是我们部署的应用的容器连不上另一个数据库容器这个就好玩了在我多方查看查找资料问大佬的方式下终于找到了解决方案首先我们准备一个项目这里我以为例子首先我们把你的项目打包一个包出来改后缀为然后上传到你的上面去解 玩了docker后相信很多童鞋都会遇到一个问题,就是我们部署的应用的容器连不上另一个数据库容器 这个就好玩了,在我多方查看,查找资料问大佬的方式下...

    VishKozus 评论0 收藏0
  • 云计算与 Cloud Native | 数人云CEO王璞@KVM分享实录

    摘要:分享实录云计算技术源于互联网公司,现在云计算已经是下一代企业级的发展趋势。如何做云计算一直是云计算技术的领导者。互联网公司的快速发展,已经印证了云计算技术和云原生应用相比传统构架的巨大优势。 今天小数又给大家带来一篇干货满满的分享——来自KVM社区线上群分享的实录,分享嘉宾是数人云CEO王璞,题目是《云计算与 Cloud Native》。这是数人云在KVM社区群分享的第一弹,之后还有数...

    _Zhao 评论0 收藏0
  • Rancher网络全解读

    摘要:在每台主机上我们执行列出主机和网络接口。其它的应用服务容器每个容器有两个地址,一个属于子网,另一个属于的子网。虽然这会带来一些性能上的影响,但是可以确保的网络默认是安全的。 本文中,我们首先将Rancher部署到EC2实例上,并且添加新的主机,之后用Rancher的Catalog启动了RocketChat应用,紧接着对运行中的容器的网络接口和其他属性的进行了分析。 同时,我们简要介绍了...

    hss01248 评论0 收藏0
  • docker 容器通讯

    摘要:参考链接外部容器的几种方式参考内容中有些许实现不到位的地方,按照测试例子,跑不起来,故参考后进行了一些修改,重新写了下文章记录一下,有些自己理解的可能不是很到位,大家凑合着看下,有问题欢迎指出,在此先谢过了,。 参考:Docker Compose:链接外部容器的几种方式参考内容中有些许实现不到位的地方,按照测试例子,跑不起来,故参考后进行了一些修改,重新写了下文章记录一下,有些自己理解...

    zebrayoung 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<