内网服务器安装docker部署java web项目

内网服务器安装docker部署java web项目

首先准备好离线的docker tar包,tomcat镜像包,mysql镜像包。

安装工作参考https://www.cnblogs.com/luoSteel/p/10038954.html

docker安装好之后导入镜像,
docker load <mysql.tar
docker load <tomcat.tar

载入之后通过docker images查看

利用挂载启动镜像:
docker run --name fbmmysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123qwe -v /usr/mysql_data:/var/lib/mysql -d hub.c.163.com/library/mysql

docker run -d -p 8888:8080 --name fbm -v /usr/host:/usr/local/tomcat/webapps -v /usr/document:/usr/local/tomcat/document --link fbmmysql:fbmmysql 510e45f8f9f7

这时候上传war包,启动tomcat,发现不成功,报jdbc连接池死锁错误,这个错误搜了一下很笼统,导致这个报错的问题很多。相同的代码放到腾讯云上就没有问题,这时候我发现内网服务器ping本机ip是ping不通的,而我的jdbcUrl写的是本机ip,难怪不成功。

于是改为127.0.0.1,发现错误依旧,不仅在内网服务器,腾讯云也报错。ping127.0.0.1是可以ping通的啊,查找发现,在docker里用127.0.0.1或者localhost进的是容器内部,而不是宿主机,这下问题就转换为docker容器内如何访问宿主机

这样问题就好办了,docker提供了一个虚拟ip,在控制台输入ifconfig,查看虚拟ip地址,
在这里插入图片描述

jdbcUrl改为127.17.0.1,然后把3306端口配置进防火墙(可能有No route to host错误)

在宿主机上将要访问的端口号添加到 public 的zone 区域:

firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --reload
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值