idea2018利用docker部署项目——demo实践

2023-11-23 17:59

本文主要是介绍idea2018利用docker部署项目——demo实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文主要介绍通过idea打包构建上传到docker镜像仓库中,并且上传至阿里云私有仓库。

1.idea2018安装docker插件

2.安装完毕之后,连接docker

server一开始需要先创建:

这时需要开发2375端口,把docker容器暴露出来,但是这在开发中是不安全,一般在测试中使用

(1)修改docker配置

#进入dockerservice 
vi /lib/systemd/system/docker.service#在ExecStart=/usr/bin/dockerd-current后添加
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

如图

(2)上面配置完成之后,这时是没有开放2375端口的,需要防火墙开放

firewall-cmd --zone=public --add-port=2375/tcp --permanentfirewall-cmd --reload

(3)重启加载docker配置,并重新启动

systemctl daemon-reloadsystemctl restart docker

(4)网络服务查看2375端口是否暴露出来了

(5)idea测试链接docker

3.编写dockerfile文件

注意不要使用${JAR_FILE}

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY  target/docker-demo.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]#以下方式不可用,原因是${JAR_FILE}读取不懂pom文件,所以直接写打包包路径
#FROM openjdk:8-jdk-alpine
#VOLUME /tmp
#ARG JAR_FILE
#COPY ${JAR_FILE} app.jar
#ENTRYPOINT ["java","-jar","/app.jar"]

4.运行docker,运行完毕之后,会生成镜像并且上传到docker容器中

5.创建容器,可以通过idea创建,也可以直接用docker命令

docker run -d -p 8080:8080 --name docker_demo eae272507e7f

注意如果映射到其他端口的话需要防火墙开放其他端口出来

查看log日志,容器启动完成之后idea可以查看也可用docker logs 容器id查看

6.访问工程ip:端口号

https://192.168.217.142:8080/user/find

7.本地打包发布镜像都没问题了,现在可以上传到阿里云私有仓库了,具体可以参考阿里云镜像操作步骤:

(1)本地docker登录阿里云镜像仓库.

(2)将刚刚打包的镜像上传到阿里云

(3)登录阿里云服务器,将镜像拉取下来

(4)启动镜像

(5)服务器访问

本文主要注意两点:

(1)2375端口如何开放,这个是个坑.

(2)dockerfile文件,主要要COPY 压缩包不要使用${}访问,只要启动容器之后,有正常日志出来,说明就已经打包成功

这篇关于idea2018利用docker部署项目——demo实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/419744

相关文章

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2