在本教程中,我们将学习如何使用 Docker 将你的 Spring Boot 应用程序打包成容器镜像,并成功部署到 Docker 容器中。
springboot应用构建目录:
把你的java编译好的程序以下面的目录结构放到linux服务器上
- blog-server.jar (你的jar服务)
- lib (jar服务依赖的jar包,也可以直接打到jar包里面)
- config
+|— application.yml
+|— ...(resource目录下所有文件)
步骤 1: 准备 Dockerfile
首先,在你的 Spring Boot 项目根目录下创建一个名为 Dockerfile
的文件,并添加以下内容:
# 使用 Java 8 镜像作为基础镜像
FROM openjdk:8-jre
# 将 Java 应用的 JAR 文件复制到容器中
COPY blog-server.jar /blog-server.jar
COPY config /config
COPY lib /lib
# 设置容器启动时运行的命令
CMD ["java", "-Dloader.path=config,lib", "-jar", "blog-server.jar"]
将 blog-server.jar
替换为你的 Spring Boot 应用程序的实际 JAR 文件名。
步骤 2: 构建 Docker 镜像
在命令行中执行以下命令来构建 Docker 镜像:
docker build -t blog-server:v1.0.0 .
这将使用 Dockerfile
中的指令构建名为blog-server 的 Docker 镜像,v1.0.0是你的镜像版本号(可任意)。
步骤 3: 运行容器
docker命令的方式
运行以下命令启动容器:
docker run -d -p 8080:8080 blog-server
此命令会将宿主机的 8080 端口映射到容器的 8080 端口,并在后台启动名为 blog-server
的容器。
docker-compose的方式:
在任意目录下创建一个docker-compose.yml,并加入以下内容:
version: '3.8'
services:
app:
image: blog-server:v1.0.0
ports:
- "8080:8080"
volumes:
- ./config:/config #将配置文件放到宿主机的目录上并挂在到docker容器里,方便更改
container_name: my-blog-server
restart: unless-stopped
启动容器:
docker-compose up -d
# 查看所有启动的容器服务
docker ps
# 查看你的docker服务日志
docker logs -f 镜像id
步骤 4: 验证部署
打开浏览器并访问 http://localhost:8080
,如果一切正常,应该可以看到你的 Spring Boot 应用程序在 Docker 容器中运行。
后面会写一篇文章教大家如何将docker镜像推送到docker私有仓库,在其他机器上直接通过docker pull的方式拉取并部署,从而完成统一构建发布部署的整个流程。
总结
本教程介绍了如何使用 Docker 将 Spring Boot 应用程序打包为容器镜像,并成功部署到 Docker 容器中。这使得应用程序的部署更加简单和可移植。通过遵循以上步骤,你可以轻松地将你的 Spring Boot 应用程序部署到 Docker 容器中。