CentOS7——Docker部署java服务
1、安装Docker
首先要确保系统已安装 Docker,若未安装,可以参考我的另一篇文章现在CentOS7上安装Docker,文章地址如下:
CentOS7系统安装Docker教程-CSDN博客
Docker当中要安装必备的软件,比如Java运行必要的JDK,如果使用到nacos、mysql、redis等软件也需要安装(可以不在同一个服务器,通过ip连接即可)。
2、准备 Java 服务项目
创建一个java项目,可以是SpringBoot的,也可以是SpringCloud的,准备好项目后,通过maven将其打包,IntelliJ IDEA里面,点击右侧的Maven,找到你项目下的Lifecycle,如下图:
点击clean,等待程序执行完成,接着再点击package,等待程序执行完成,到这里,java服务就算是打包好了,可以在target目录下找到打包好的文件(后缀名为.jar):
3、编写DockerFile文件
在pom.xml同级目录下,创建DockerFile文件(没有后缀名),在文件中写入以下内容:
# 使用基础镜像(根据项目 Java 版本选择,如 openjdk:11-jre-slim)
FROM openjdk:8-jre-slim# 更新源并安装字体和字体配置工具,安装完成后清理缓存
RUN apt-get update && apt-get install -y --no-install-recommends \fonts-dejavu-core \fontconfig \&& apt-get clean \&& rm -rf /var/lib/apt/lists/*# 设置工作目录
WORKDIR /app# 复制项目 JAR 文件(需先通过 mvn package 等方式打包项目)
# 用图一中打包的java服务名称替换your-app-name
COPY target/your-app-name.jar app.jar# 暴露项目端口(如项目配置的端口为 8080)
EXPOSE 10001# 设置JAVA_OPTS环境变量
ENV JAVA_OPTS="-Ddebug"# 定义启动命令,使用 JAVA_OPTS 环境变量
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Xmx512m -Xms256m -jar app.jar"]
4、连接Docker
IntelliJ IDEA,点击左上角的File,找到Settings:
单击Build,Execution,Deployment选项,找到Docker,双击打开,再点击右边面板的+号创建一个Docker连接,输入name以及Engine Api URL(服务器或者虚拟机的ip地址和docker的端口号,默认是:2357),若成功连接,则下方会出现Connection Successful!,否则可能是服务器网络没配置好,所以连接不上,如下图:
5、配置Docker
IntelliJ IDEA找到下图位置,点击箭头展开下拉菜单,点击Edit Configurations:
在弹出的窗口点击+号,找到DockerFile,name可以随意填写,server处选择我们上面创建的docker链接(docker服务器),DockerFile处指定使用的DockerFile文件(上面我们创建的),image和container的名字可以自定义,自己能区分出来就行,image(镜像)是用来创建container(容器)的,也可以将image理解为container的副本,如果有多个工程(微服务),则需配置多个DockerFile,都是一样的流程,流程如下图:
到这里我们就可以将java服务部署到docker上了,在下图位置选择你要部署的服务,然后点击绿色箭头,等待程序执行即可:
出现successfully说明java服务已经成功上传到docker服务器了,如果java服务在docker上运行不报异常,则部署成功,若报异常则根据异常解决问题(通常是因为docker服务器环境和本地不同,比如版本冲突啥的)。
部署成功后,在服务器打开命令窗口,输入以下命令:
sudo docker ps
可以看到正在运行的java服务的container,如下图:
接着再浏览器输入,服务器ip:端口号/Api URI,即可访问,例如:
192.168.232.128:20000/user/captchat