docker
  • docker教程
  • advanced
    • Docker 构建缓存指南
    • Docker分配CPU资源
    • Dockerfile+Maven插件构建SpringBoot镜像(推荐)
    • Dockerfile构建SpringBoot镜像
    • idea配置docker
    • Docker Jenkins进阶配置
    • 基于jenkins容器部署SpringBoot应用构建镜像(基于Dockerfile+Maven插件构建)
    • Maven插件构建SpringBoot镜像(二)
    • 基于Maven插件为SpringBoot应用构建镜像并推送到远程_私人仓库(Docker Hub)
    • Maven插件构建SpringBoot镜像(一)
    • Docker MongoDB进阶配置
    • Docker 多阶段构建指南
    • Docker MySql进阶配置
    • Docker network进阶配置
    • Docker Nginx进阶配置
    • Docker空(none)镜像处理
    • Docker pip install --no-cache-dir
    • Docker redis进阶配置
  • concepts
    • docker、docker engine和docker desktop区别
    • 架构
    • 什么是容器?
    • 什么是镜像?
    • 什么是Docker?
    • 什么是仓库?
  • docker-compose
    • Docker Compose 锚点的用法
    • docker-compose 编排多服务
    • docker-compose 常用命令
    • docker-compose 部署jenkins
    • docker-compose安装mySql
    • docker-compose网络配置
    • docker-compose安装nginx
    • docker-compose安装redis
    • docker Compose 示例1
  • docker-hub
    • Docker Hub账号服务说明
  • install
    • CentOS Docker 安装
    • Debian Docker 安装
    • Docker 安装 Apache
    • Docker 安装 CentOS
    • Docker 安装 Elasticsearch
    • Docker 安装 GitLab
    • Docker 安装 Jenkins
    • Docker 安装 MongoDB
    • Docker 安装 MySQL
    • Docker 安装 Nginx
    • Docker 安装 Node.js
    • Docker 安装 PHP
    • Docker 安装 Portainer
    • Docker Python 官方镜像使用说明(TAG说明)
    • Docker 安装 Python
    • Docker 安装 Redis
    • Docker 安装 Tomcat
    • Docker 安装 Ubuntu
    • Docker 安装 Wordpress
    • Docker 国内镜像加速
    • MacOS Docker 安装
    • Ubuntu Docker 安装
    • Windows Docker 安装
  • manual
    • Docker attach 命令
    • Docker build 命令
    • Docker 清理命令
    • Docker命令大全
    • Docker commit 命令
    • docker-compose-run-command
    • Docker cp 命令
    • Docker create 命令
    • Docker diff 命令
    • Docker rm 命令
    • Docker exec 命令
    • Docker export 命令
    • Docker history 命令
    • Docker images 命令
    • Docker import 命令
    • Docker info 命令
    • Docker inspect 命令
    • Docker kill 命令
    • Docker load 命令
    • Docker login/logout 命令
    • Docker logs 命令
    • Docker network 命令
    • Docker pause/unpause 命令
    • Docker port 命令
    • Docker 常见问题
    • Docker ps 命令
    • Docker pull 命令
    • Docker push 命令
    • Docker rename 命令
    • docker-resources
    • Docker rm 命令
    • Docker rm 命令
    • Docker run 命令
    • Docker save 命令
    • Docker search 命令
    • Docker start/stop/restart 命令
    • Docker stats 命令
    • Docker tag 命令
    • Docker top 命令
    • Docker version 命令
    • Docker version 命令
    • Docker wait 命令
    • diff
      • Docker Compose 和 docker-compose 区别
      • Docker import、export 与 save、load 命令 区别
  • usage
    • Docker docker-compose 使用
    • Docker 容器连接
    • Docker 容器使用
    • Docker Dockerfile Ptyhon实战配置-1
    • Docker Dockerfile Ptyhon实战配置之多阶段构建-2
    • Docker Dockerfile
    • Docker 镜像使用
    • Docker Machine
    • Docker 仓库管理
    • Swarm集群管理
  • assets
    • mysql
      • my.cnf
Powered by GitBook
On this page
  • 简介
  • 编写Dockerfile文件
  • 使用maven打包应用
  • 构建镜像
  • 启动
  • 演示项目地址

Was this helpful?

  1. advanced

Dockerfile构建SpringBoot镜像

PreviousDockerfile+Maven插件构建SpringBoot镜像(推荐)Nextidea配置docker

Last updated 5 months ago

Was this helpful?

简介

本示例使用Dockerfile 相关命令,和已经打好包(mvn -DskiptTests package) 的SpringBoot 应用 在Docker服务器上构建镜像并启动的 简单示例。

编写Dockerfile文件

# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD dockerfile-example-0.0.1-SNAPSHOT.jar /app.jar
# 运行过程中更改 `app.jar` 文件的访问时间和修改时间
RUN bash -c 'touch /app.jar'
# 声明服务运行在8802端口
EXPOSE 8802
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/app.jar"]
# 指定维护者的名字
MAINTAINER tuonioooo

使用maven打包应用

使用idea maven插件打包

打包成功信息

INFO] --- spring-boot-maven-plugin:2.7.5:repackage (repackage) @ dockerfile-example ---
[WARNING] The POM for commons-codec:commons-codec:jar:1.11 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.commons:commons-lang3:jar:3.7 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  17.530 s
[INFO] Finished at: 2022-11-02T09:10:30+08:00
[INFO] ------------------------------------------------------------------------

Process finished with exit code 0

构建镜像

将Dockerfile、dockerfile-example-0.0.1-SNAPSHOT.jar 上传到Linux服务器上

在Dockerfile所在目录执行以下命令:

docker build -t my_dfile/dockerfile-example:0.0.1-SNAPSHOT .

[!NOTE]

-t 表示指定镜像仓库名称/镜像名称:镜像标签 . 表示使用当前目录下的Dockerfile

输出如下信息:

Sending build context to Docker daemon  1.265GB
Step 1/6 : FROM java:8
 ---> d23bdf5b1b1b
Step 2/6 : ADD dockerfile-example-0.0.1-SNAPSHOT.jar /app.jar
 ---> 13f7c5c6e419
Step 3/6 : RUN bash -c 'touch /app.jar'
 ---> Running in 1ef18ec6b2f0
Removing intermediate container 1ef18ec6b2f0
 ---> c6f62bc623d1
Step 4/6 : EXPOSE 8802
 ---> Running in ef33d28ed325
Removing intermediate container ef33d28ed325
 ---> a71ef4fc90d0
Step 5/6 : ENTRYPOINT ["java", "-jar","/app.jar"]
 ---> Running in a132f902ceeb
Removing intermediate container a132f902ceeb
 ---> 05287fa1fb5c
Step 6/6 : MAINTAINER tuonioooo
 ---> Running in 1d9405f6c813
Removing intermediate container 1d9405f6c813
 ---> ce44f6e0bb51
Successfully built ce44f6e0bb51
Successfully tagged my_dfile/dockerfile-example:0.0.1-SNAPSHOT

查看镜像

启动

挂载日志目录

mkdir -p /mount/apps/dockerfile-example/logs

删除已存在的容器、和空悬镜像

docker stop dockerfile-01
docker rm dockerfile-01
docker rmi $(docker images -f "dangling=true" -q)
或
docker image prune

启动docker

docker run -p 8802:8802 --name dockerfile-01 \
  -v /etc/localtime:/etc/localtime \
  -v /mount/apps/dockerfile-example/logs:/logs \
  -d my_dfile/dockerfile-example:0.0.1-SNAPSHOT

演示项目地址

进行访问测试,地址:

Dockerfile常用命令
http://192.168.217.144:8802/swagger-ui.html
https://gitee.com/ecs-common-deploy/dockerfile-example.git