springboot项目打docker镜像实例(入门级)
作者:记忆机器
1.新建一个springboot项目
使用IDEA new 一个maven项目,建立最简单的项目结构,一个pom.xml,一个applicaion.yml,一个启动类,一个controller
pom.xml内容如下:
spring-boot-starter-web依赖是spring boot web项目的依赖包
spring-boot-maven-plugin是springboot项目打jar包需要的插件,其中mainClass指定启动类
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bear.big</groupId> <artifactId>Forest</artifactId> <version>1.0-SNAPSHOT</version> <properties> <start-class>com.bear.big.Boss</start-class> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.6.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <mainClass>${start-class}</mainClass> </configuration> </plugin> </plugins> </build> </project>
applicaiton.yml内容如下:
server: port: 8080
Boss启动类:
package com.bear.big; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Boss { public static void main(String[] args) { SpringApplication.run(Boss.class,args); } }
TestController如下:
package com.bear.big.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @GetMapping("/cut") public String cut(){ return "tree"; } }
然后就可以启动这个服务了,访问http://localhost:8080/cut :
打jar包:
在IDEA右侧maven标签下,找到项目名-> lifecycle -> package,执行,就会在target下生成项目的jar包。
或者在项目路径下,打开terminal,直接执行mvn clean install ,也有同样的效果
mvn clean install
2.编写Dockerfile
上面的步骤已经生成了一个可以运行的jar包,这一步就是如何将jar包打到docker镜像中
- 新建一个空目录Docker,将jar包拷贝到Docker目录下;
- 新建一个文件Dockerfile
- 将jdk安装包拷贝到Docker目录下(下载url:Java Downloads | Oracle 需要注册oracle账户,登录)
Docker目录结构如下:
Dockerfile内容如下:
FROM ubuntu:18.04 LABEL author=jiyijiqi # 安装jdk ADD jdk-8u311-linux-x64.tar.gz /usr/local/java RUN ln -s /usr/local/java/jdk1.8.0_311 /usr/local/java/jdk ENV JAVA_HOME /usr/local/java/jdk ENV JRE_HOME ${JAVA_HOME}}/jre ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib ENV PATH ${JAVA_HOME}/bin:$PATH # 工作目录 WORKDIR /workspace # 拷贝jar包 COPY Forest-1.0-SNAPSHOT.jar /workspace # 声明暴露端口 EXPOSE 8080 # 容器启动的默认命令 CMD ["java","-jar","Forest-1.0-SNAPSHOT.jar"]
3.生成镜像并运行
做完上述准备工作后,正式开始打镜像
windows打开powershell(快捷键win+x),进入Docker目录,或者直接在目录窗口输入powershell
docker 打镜像的命令为 docker build -t [name]:tag [dir],本次实例如下
docker build -t forest:1.0 .
一个自定义docker镜像就打好了。执行docker images查看本地当前镜像列表。
docker images
下面开始运行容器
执行docker run, -it 表示以交互模式打开, --rm表示退出后自动删除容器,方便调试,-p 将本机8080端口映射到容器内部,前面的8080是本机,后面的是容器内部端口
docker run -it --rm -p 8080:8080 forest:1.0
容器运行后,访问服务:
成功!
如果想让容器在后台一直跑,多加个-d参数即可。
docker run -itd --rm -p 8080:8080 forest:1.0
关于dockerfile的其他详细参数,可以参考这篇
4.将镜像推送至dockerHub
镜像推送至远程仓库,团队其他成员就可以拉取、运行你的镜像
准备工作:
首先,注册dockerhub账号 https://hub.docker.com
注册完后成登录,新建一个仓库,点击create Rpository
名称随便输入,比如aaa, 权限设置为public
建好之后回到首页就能看到你的仓库列表里有了,点进去能看到仓库详情,如何推送等等
开始推送:
执行docker tag重新将镜像标为docker hub提示的格式,如上图红框里的,tagname自定义,这里是版本号1.0
docker tag forest:1.0 bearbigk/aaaa:1.0
执行docker login,使用账号登录远程仓库,首次登录要输入用户名密码
docker login
随后执行docker push
docker push bearbigk/aaaa:1.0
推送进行中,有点慢
推送完成后,dockerHub仓库中就多了一个tag。其他人执行docker pull 就可以拉取你的镜像了
docker pull bearbigk/aaaa:1.0
到此这篇关于springboot项目打docker镜像实例(入门级)的文章就介绍到这了,更多相关springboot打docker镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!