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

相关文章

Centos7 firewall和docker冲突问题及解决过程

《Centos7firewall和docker冲突问题及解决过程》本文描述了一个在CentOS7上使用firewalld和Docker容器的问题,当firewalld启动或重启时,会从iptable... 目录系统环境问题描述问题排查解决办法总结本文只是我对问题的记录,只能用作参考,不能China编程说明问题,请

Django调用外部Python程序的完整项目实战

《Django调用外部Python程序的完整项目实战》Django是一个强大的PythonWeb框架,它的设计理念简洁优雅,:本文主要介绍Django调用外部Python程序的完整项目实战,文中通... 目录一、为什么 Django 需要调用外部 python 程序二、三种常见的调用方式方式 1:直接 im

jdk1.8的Jenkins安装配置实践

《jdk1.8的Jenkins安装配置实践》Jenkins是一款流行的开源持续集成工具,支持自动构建、测试和部署,通过Jenkins,开发团队可以实现代码提交后自动进行构建、测试,并将构建结果分发到测... 目录Jenkins介绍Jenkins环境搭建Jenkins安装配置Jenkins插件安装Git安装配

SpringBoot的全局异常拦截实践过程

《SpringBoot的全局异常拦截实践过程》SpringBoot中使用@ControllerAdvice和@ExceptionHandler实现全局异常拦截,@RestControllerAdvic... 目录@RestControllerAdvice@ResponseStatus(...)@Except

mysql_mcp_server部署及应用实践案例

《mysql_mcp_server部署及应用实践案例》文章介绍了在CentOS7.5环境下部署MySQL_mcp_server的步骤,包括服务安装、配置和启动,还提供了一个基于Dify工作流的应用案例... 目录mysql_mcp_server部署及应用案例1. 服务安装1.1. 下载源码1.2. 创建独立

Nginx服务器部署详细代码实例

《Nginx服务器部署详细代码实例》Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,:本文主要介绍Nginx服务器部署的相关资料,文中通过代码... 目录Nginx 服务器SSL/TLS 配置动态脚本反向代理总结Nginx 服务器Nginx是一个‌高性

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index:

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建