idea利用docker部署项目

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

1.idea安装docker插件

插件里面搜索docker就行

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

server一开始需要先创建:

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

(1)修改docker配置

javascript 复制代码
#进入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端口的,需要防火墙开放

javascript 复制代码
firewall-cmd --zone=public --add-port=2375/tcp --permanent

firewall-cmd --reload

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

javascript 复制代码
systemctl daemon-reload

systemctl restart docker

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

(5)idea测试链接docker

3.编写dockerfile文件

注意不要使用${JAR_FILE}

javascript 复制代码
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 压缩包不要使用${}访问,只要启动容器之后,有正常日志出来,说明就已经打包成功

相关推荐
Hsu琛君珩6 分钟前
【SpringCloud】优雅实现远程调用 - OpenFeign
后端·spring·spring cloud
IT学长编程6 分钟前
计算机毕业设计 基于SpringBoot的小区运动中心预约管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·后端·毕业设计·课程设计·毕业论文·计算机毕业设计选题
2401_8576176234 分钟前
校园美食导航:Spring Boot技术的美食发现之旅
spring boot·后端·美食
iQM751 小时前
分布式秒杀实战之订单数据分表
java·spring boot·分布式·后端
Lojarro1 小时前
后端:理解与创建项目
后端
码农小旋风1 小时前
#到底什么是大模型Attention机制
后端
2402_857589362 小时前
校园美食探索者:Spring Boot开发的分享平台
spring boot·后端·美食
中式代码美式咖啡2 小时前
在Spring Boot中实现多环境配置
android·spring boot·后端
技术无疆3 小时前
【Python】Tartiflette:用 Python 实现的 GraphQL 服务器
服务器·开发语言·后端·python·pygame·graphql·python3.11
Pandaconda3 小时前
【计算机网络 - 基础问题】每日 3 题(十八)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展