Docker实例正常启动,且端口正常映射,但是外网无法访问接口服务_docker 启动java后端 访问不到接口-程序员宅基地

技术标签: spring boot  java  docker  

1、前提说明:项目使用的是微服务,用的springboot2 2.3.2.RELEASE版本,使用Docker部署服务;

2、出现问题:Docker实例正常启动,且端口正常映射【19960:8080】,但是外网无法访问接口服务;

3、排查步骤:

3.1、检查Docker实例状态,正常启动;

3.2、检查防火墙,是关闭状态;

3.3、检查阿里云服务器对外开放端口,端口也已经开放。

3.4、迷茫中。。。

最后在反复排查中,发现了一个问题:

首先,我在Dockerfile里面设置了:EXPOSE 8080;

然后,项目的yml配置文件端口号配置的是:

server:

         port: 8002

最后,启动Docker时,用的命令是:docker run -d -p 19960:8080 ...

也就是说,容器对外暴露的接口是8080,springboot项目启动的端口是8002,服务器对外的端口是19960。我在使用telnet对应端口时,提示:

于是,我试了这样操作:

1.修改项目的yml配置文件端口号配置的是:

server:

         port: 19960

2.在Dockerfile里面修改设置:EXPOSE 19960;

3.启动Docker时,用的命令是:docker run -d -p 19960:19960 ...

最后,终于可以正常访问了。。。

总结下:容器启动时,docker run -d -p 19960:19960,设置对外暴露的端口,应该是要跟项目配置的服务端口【server.port:19960】保持一致的。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/huangzike/article/details/119920346

智能推荐

动态通讯录实现——简单易上手的C语言小项目-程序员宅基地

这是一个适合练手的C语言小项目,不含注释共两百多行代码,主要包含**结构体的定义与应用,函数的调用,指针的传递,文件的操作,简单排序算法的应用**,实现的主要功能是**对通讯录信息的增删改查,还有根据年龄进行排序和保存录入信息到文件中**,方便下次打开继续查看,同时通讯录的存储空间是可以动态开辟的,可以根据信息量的多少来实现实时扩容。

curl编译笔记_curl_3_0编译_FlyingAnt_的博客-程序员宅基地

1 下载curl 版本为:2 配置生成makefile CPPFLAGS="-I/home/qlz/opt/openssl/build-static/include" LDFLAGS="-L/home/qlz/opt/openssl/build-static/lib" LIBS="-ldl" ./configure --host=arm-himix200-linux CC=arm-himix200-linux-gcc CXX=arm-himix200-linux-g++ --with-ss_curl_3_0编译

数据挖掘实战(四):模型评估_数据挖掘模型实验计算准确率-程序员宅基地

文章目录一、模型评估方法二、代码实现任务要求:记录5个模型(逻辑回归、SVM、决策树、随机森林、XGBoost)关于accuracy、precision,recall和F1-score、auc值的评分表格,并画出ROC曲线一、模型评估方法举例一:假设有1000个病人的数据,要对1000个病人进行分类,有哪些是癌症的?哪些不是患有癌症的?假设其中有990个人不患癌症,10个人是患癌症。(1..._数据挖掘模型实验计算准确率

二进制文件和文本文件的区别_1.请简述文本文件和二进制文件的区别-程序员宅基地

文本文件与二进制文件的定义  文本文件:是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。   二进制文件:是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。   从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。_1.请简述文本文件和二进制文件的区别

web前端--CSS(二)_web文本大小写转换是啥-程序员宅基地

CSS主要描述HTML中的信息(文本、框图、表格等)这次主要包括选择样式、控制边框和背景、设置文本样式三个方面。1、选择样式(1)选择所有元素:*(2)根据类设置属性:.class1{}(3)根据id: #id1{}(4)根据属性选择元素:【href=href1】{}(5):冒号选择器<!DOCTYPE html><html lang="en">..._web文本大小写转换是啥

一个极端的前端国际化方法-程序员宅基地

最近一直在做整个页面的国际化,相信很多小伙伴们都做过,前端主要采用的是Angularjs,后端使用的是Spring来做国际化,那么他们的优点,缺点现在一起来总结一下。其实无论用哪种语言做国际化,感觉都是千篇一律,只不过实现的方式不同而已。1.定义国际化配置(什么CN啊EN啊之类的)2.读取国际化配置3.定义自己的国际化方式(是通过切面也好,工具类也好)AngularJs国际化1.定义国际化配置;在

随便推点

MySQL5.7.28免安装版本_mysql5.7.28 免安装版-程序员宅基地

1、下载,并解压https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-winx64.zip2、配置环境变量在系统变量 path 后面追加D:\zz\MySQL5.7.28\bin,如图所示。3、创建配置文件,命名为 my.ini,编辑 my.ini 文件的内容,如图所示。[mysql]#设置mysql客..._mysql5.7.28 免安装版

redis配置-程序员宅基地

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。...

Python3中异常处理和try/except,try/finally的用法_python3 try-程序员宅基地

目录1:Python3中异常处理介绍2:异常处理语句2.1:try/except/else捕获指定的异常:2.2:try/finally2.3:raise:引发异常2.4:with/as:上下文管理器3:Python中常见异常1:Python3中异常处理介绍在Python中当发生错误时,Python中的异常会自动触发,异常也能由代码触发和拦截,Python中有如下语句来触发,处理异常:a:try/except:拦截由Python或者自己的代码引起的异常并从中恢复。b_python3 try

linux日志报错localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s!-程序员宅基地

原文:http://www.weiruoyu.cn/?p=500 linux系统反复死机,刚开始1天死机一次,突然不到1个小时,再然后10分钟就会掉线,死机。只能重启,有时候还会黑屏。查看日志发现一个这个错误:localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s!网上查了好多,发现是跟网络有关系,就顺着网络去找,发现...

小程序web-view打开PDF格式文件的安卓苹果兼容性问题_webview pdf乱码小程序-程序员宅基地

小程序中打开pdf格式原本可以使用web-view(承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用)<web-view src="{{link}}"></web-view>src里放链接就能够正常实现但是src里面放pdf的链接涉及到了兼容性问题(苹果手机可以正常打开pdf格式文件,安卓打开为空白)所以如果src里面放pdf格式就会..._webview pdf乱码小程序

Win7/Win10+VS2012+OpenCV3.0.0-程序员宅基地

本文以Win10+VS2012+OpenCV3.0.0配置为例,Win7、OpenCV3.4.9、VS2017等各个OpenCV及VS版本均可参考此案例进行配置。

推荐文章

热门文章

相关标签