之前云上测试java代码的时候让运维做的,这几天找运维拿了账号和vpn,开了端口测试了一波....心累
简单说下吧,我之前把华为云的车牌识别微服务部署上去的 总共4个jar包 注册中心eureka 网关zuul 车牌识别微服务 以及一个common公共包(感觉是不用的这个包,因为其他的服务引用了这个jar包的,打包一起打进去了的,但是我还是留着了)
之前运维部署方式是 docker创建一个容器 这里叫 xhiot 吧(容器名字),然后容器里有jdk tomcat 相关镜像 然后把jar包所在目录挂载到宿主机的home/xhiot 下,直接用nohup java -jar 启动的jar包,容器端口映射宿主机端口(如:容器内 网关10000端口->对应宿主机10000端口)。然后公网对外开放19000端口,外部请求走19000端口,宿主机做转发,转发到网关端口....
然后这次又写了个小功能,批量导入导出Excel表格数据,OK 写吧,数据结构比较简单,就不细说了,主要是这次我自己上传部署测试,有点心累...
docker我个人不太熟,主要是它的命令真心长,看见就劝退....
一连接上服务器,一看启动脚本,简单除暴直接...按照格式新添加一个 ,启动,报错,说什么‘/r’找不到...
OK,看看服务启动成功了吗...
netstat -nultp | grep java
神奇,启动成功....OK 然后不管了 想测试,结果发现,端口没做映射....
于是百度....如何给已经启动的容器做端口映射
本人试验了一个方法 成功
# 先停止容器
docker stop 容器id
#再停止docker服务
systemctl stop docker
#然后进入docker目录
cd /var/lib/docker/containers
#里面是你的容器id文件目录,进入你需要更改端口映射的容器
#里面有一个hostconfig.json文件,找到这一段
#宿主机端口 #ip #本容器端口
"PortBindings":{"10000/tcp":[{"HostIp":"","HostPort":"10000"}],"9000/tcp":[{"HostIp":"","HostPort":"9000"}]}
#你想新添什么端口直接在最后一个中括号后面添加
#改完之后,保存
#然后打开config.v2.json,找到下面这一段,按照格式添加就行
"ExposedPorts":{"10000/tcp":{},"9000/tcp":{}}
#保存,重启docker服务,重启容器
然后你会看见端口映射成功
之后我在本地用postman测试就OK了....
对了 中间用nginx做了个反向代理,把表格模板放在了挂载目录下,nginx指向了表格所在目录,这样可以直接用url下载....
OVER!