docker - maven 插件自动构建镜像(构建镜像:ebuy-docker:v2.0)

devtools/2024/9/29 23:40:53/

文章目录

  • 1、docker服务端开启远程访问
  • 2、在pom.xml文件plugins下添加Maven的docker插件
  • 3、编写dockerfile文件
  • 4、执行maven的打包命令
  • 5、查看 镜像 ebuy-docker:v2.0
  • 6、创建 容器 ebuy-dockerv2.0

上面手动构建镜像的过程比较繁琐,使用Maven的docker插件可以实现镜像的自动化部署。

步骤:

1、开启docker服务端的远程访问

2、在pom.xml文件中添加Maven的docker插件

3、在工程的根目录下创建dockerfile文件

4、使用maven的打包命令进行打包

5、创建容器并访问

实操:

docker_16">1、docker服务端开启远程访问

#修改该文件
vim /lib/systemd/system/docker.service#找到ExecStart行,修改成如下内容
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock#重启守护进程
systemctl daemon-reload	
#重启docker
systemctl restart docker	
[root@localhost ~]# vim /lib/systemd/system/docker.service

在这里插入图片描述
在这里插入图片描述

[root@localhost ~]# systemctl daemon-reload 
[root@localhost ~]# systemctl restart docker

docker_42">2、在pom.xml文件plugins下添加Maven的docker插件

<plugin>              <groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.2.2</version><!--将插件绑定在某个phase执行--><executions><execution><id>build-image</id><!--将插件绑定在package这个phase(阶段)上。也就是说,用户只需执行mvn package,就会自动执行mvn docker:build--><phase>package</phase><goals><goal>build</goal></goals></execution></executions><configuration><!--指定生成的镜像名--><imageName>${project.artifactId}</imageName><!--指定标签,也就是版本号,可以自定义--><imageTags><imageTag>v2.0</imageTag></imageTags><!--指定远程 docker api地址 也就是服务器ip+docker的端口号--><dockerHost>http://192.168.74.148:2375</dockerHost><!-- 指定 dockerfile 路径--><dockerDirectory>${project.basedir}</dockerDirectory><!-- 是否跳过docker构建 --><skipdockerBuild>false</skipdockerBuild></configuration></plugin>

dockerfile_82">3、编写dockerfile文件

注意:dockerfile文件 和 pom.xml 处于同一个目录、关闭防火墙
在这里插入图片描述
在这里插入图片描述

FROM centos7-jdk17
MAINTAINER atguigu
EXPOSE 8081
ADD target/ebuy-docker-1.0-SNAPSHOT.jar /ebuy-docker-1.0-SNAPSHOT.jarWORKDIR /
ENTRYPOINT ["java" , "-jar" , "ebuy-docker-1.0-SNAPSHOT.jar"]

maven_97">4、执行maven的打包命令

# 打包跳过测试
mvn clean package -DskipTests		
# 打包跳过测试的同时跳过构建
mvn clean package -DskipTests -DskipdockerBuild		

在这里插入图片描述

dockerv20_106">5、查看 镜像 ebuy-docker:v2.0

在这里插入图片描述

dockerv20_108">6、创建 容器 ebuy-dockerv2.0

docker run -d \--name ebuy-dockerv2.0 \-p 8082:8081 \ebuy-docker:v2.0
[root@localhost ~]# docker run -d \
>     --name ebuy-dockerv2.0 \
>     -p 8082:8081 \
>     ebuy-docker:v2.0
ed751397ce5335b0d20c357e7a185e6dc92d0a48e4f3839d605245d93ebc1747
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                   CREATED          STATUS          PORTS                                                                   NAMES
ed751397ce53   ebuy-docker:v2.0         "java -jar ebuy-dock…"   21 seconds ago   Up 20 seconds   0.0.0.0:8082->8081/tcp, :::8082->8081/tcp                               ebuy-dockerv2.0
903246a96cb1   portainer/portainer      "/portainer"              22 hours ago     Up 30 minutes   8000/tcp, 9443/tcp, 0.0.0.0:10010->9000/tcp, :::10010->9000/tcp         portainer
99bdd2331b79   mongo:7.0.0              "docker-entrypoint.s…"   28 hours ago     Up 30 minutes   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp                           mongodb
8c71efe9dca7   wurstmeister/zookeeper   "/bin/sh -c '/usr/sb…"   5 weeks ago      Up 30 minutes   22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp   zookeeper
c14772057ab8   redis                    "docker-entrypoint.s…"   9 months ago     Up 30 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                               spzx-redis
ab66508d9441   mysql:8                  "docker-entrypoint.s…"   9 months ago     Up 30 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                    spzx-mysql

在这里插入图片描述


http://www.ppmy.cn/devtools/118952.html

相关文章

Java 之 ssm框架入门

SSM框架作为Java Web开发的热门选择&#xff0c;其强大功能和易用性吸引了众多开发者。以下是我对该框架的理解以及学习建议&#xff0c;仅供参考 一、 SSM框架深度解析 1. Spring 核心技术 IoC (控制反转) 概念: 将对象的创建和管理权利交给Spring容器&#xff0c;通过依赖注…

OpenCV图像文件读写(2) 检查 OpenCV 是否支持某种图像格式的写入功能函数haveImageWriter()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 haveImageWriter 函数用于检查 OpenCV 是否支持某种图像格式的写入功能。这个函数可以帮助开发者在编写代码时确定是否可以成功地将图像写入特定…

【Java】内部类【主线学习笔记】

文章目录 前言内部类内部类的使用举例内部类的分类对于成员内部类的理解 前言 Java是一门功能强大且广泛应用的编程语言&#xff0c;具有跨平台性和高效的执行速度&#xff0c;广受开发者喜爱。在接下来的学习过程中&#xff0c;我将记录学习过程中的基础语法、框架和实践技巧等…

React入门准备

React是什么 React是一个用于构建用户界面的JavaScript框架&#xff0c;用于构建“可预期的”和“声明式的”Web用户界面&#xff0c;特别适合于构建那些数据会随时间改变的大型应用的用户界面。 它起源于Facebook的内部项目&#xff0c;因为对市场上所有JavaScript MVC框架都…

Android—ANR日志分析

获取ANR日志&#xff1a; ANR路径&#xff1a;/data/anrADB指令&#xff1a;adb bugreport D:\bugrep.zip ANR日志分析步骤&#xff1a; “main” prio&#xff1a;主线程状态beginning of crash&#xff1a;搜索 crash 相关信息CPU usage from&#xff1a;搜索 cpu 使用信息…

[遇到问题] Word中插入公式横线“-”变成了长连字符

1 一招解决Word里公式减号/短横线&#xff0c;在关闭word后变成连字符_word中公式短横线变成了减号-CSDN博客 2 选中横向-公式-文本&#xff08;公式文本化即可&#xff09;

SSM+Vue共享单车管理系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质创作…

【React】组件通信

1. 组件通信 组件间的数据传递 1.1 父传子 步骤&#xff1a; 父组件传递数据——在子组件标签上绑定属性子组件接收数据——子组件通过props参数接收数据 function Son(props) {return <div>{props.value}</div> }function App() {const value 父组件传给子…