docer:利用Dockerfile构建springboot项目镜像

本文介绍如何使用Dockerfile构建包含Java应用程序的Docker镜像,并通过具体步骤演示从构建镜像到运行容器的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dockerfile文件内容:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD xing-yu-gaint-0.0.1-SNAPSHOT.jar  app.jar
ENV JAVA_OPTS=""
ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar

将对于jar包拷贝到Dockerfile文件同级后执行命令,注意别漏了最后的那个点:

docker build -t xingyu-granter:1.0 .

执行命令后控制台输出:

Sending build context to Docker daemon 44.11 MB
Step 1/5 : FROM openjdk:8-jdk-alpine
Trying to pull repository docker.io/library/openjdk ... 
8-jdk-alpine: Pulling from docker.io/library/openjdk
8e402f1a9c57: Pull complete 
4866c822999c: Pull complete 
a5e04b7d13ab: Pull complete 
Digest: sha256:d2e2716147d1f7fe73b1a9f72a9cff7a7aa92d32eb8de4fffbfddc596e004984
Status: Downloaded newer image for docker.io/openjdk:8-jdk-alpine
 ---> e9ea51023687
Step 2/5 : VOLUME /tmp
 ---> Running in 5e95694f9de9
 ---> 60673958a730
Removing intermediate container 5e95694f9de9
Step 3/5 : ADD xing-yu-gaint-0.0.1-SNAPSHOT.jar app.jar
 ---> 4aa05ce33ea5
Removing intermediate container 6d21c6bcc078
Step 4/5 : ENV JAVA_OPTS ""
 ---> Running in f5a8e1764e7a
 ---> 96cdc1ad3ee4
Removing intermediate container f5a8e1764e7a
Step 5/5 : ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
 ---> Running in df6469fa220b
 ---> 1fbdd10e6643
Removing intermediate container df6469fa220b
Successfully built 1fbdd10e6643

最后显示Successfully built 1fbdd10e6643表示build成功,docker image查看已经构建的镜像:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
xingyu-granter      1.0                 1fbdd10e6643        3 minutes ago       149 MB

创建容器:

docker run -d --name xy-granter -p 18080:18080 xingyu-granter:1.0

查看容器是否启动成功:

[root@iZwz99navp6ed7kg7vy8nhZ xingyu-granter]# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                      NAMES
c0015e2d1a1c        xingyu-granter:1.0   "/bin/sh -c 'exec ..."   4 seconds ago       Up 3 seconds        0.0.0.0:18080->18080/tcp   xy-granter
通过Dockerfile构建Spring Boot项目镜像是非常常见的做法,可以帮助开发者轻松打包、部署和运行应用程序。以下是详细的步骤指南: ### 创建 Spring Boot 应用程序的 Docker 镜像 #### 1. 准备好 Spring Boot 项目 首先确认你的 Spring Boot 项目是可以正常工作的,并且有一个 `pom.xml` 或者 `build.gradle` 文件(取决于你使用的构建工具),以及一个可执行的 JAR 包文件位于目标目录中。 #### 2. 编写 Dockerfile 在你的项目根目录下新建名为 `Dockerfile` 的文本文件,内容如下所示: ```Dockerfile # 使用官方 OpenJDK 基础镜像 FROM openjdk:17-jdk-alpine # 设置工作目录为 /app WORKDIR /app # 将当前目录下的所有文件复制到容器的工作目录里 COPY target/*.jar app.jar # 显式声明暴露的应用端口号 (可以根据实际情况调整) EXPOSE 8080 # 定义启动命令 ENTRYPOINT ["java", "-jar", "/app/app.jar"] ``` 注意:如果你不是直接生成了一个单独的 `.jar` 文件而是有更复杂的依赖关系或其他资源文件,那么你需要相应地修改 COPY 指令以包含那些额外的内容。 #### 3. 构建 Docker 镜像 打开终端窗口并将路径切换至含有 `Dockerfile` 的项目目录,然后执行以下命令来创建新的 Docker 镜像: ```sh docker build -t your-spring-boot-app-name . ``` 这里的 `-t` 参数是用来指定生成后的镜像名 (`your-spring-boot-app-name`) ,最后面那个点代表的是当前所在目录即上下文环境。 #### 4. 运行容器实例 一旦成功构建好了镜像,就可以利用它快速搭建起服务了。例如,你可以这样做: ```sh docker run -d -p 8080:8080 --name springboot-container your-spring-boot-app-name ``` 这条命令会在后台 (-d) 启动一个新的容器并且将其内部的服务映射到主机上的8080端口上供外界访问。 --- 至此,你就完成了使用 Dockerfile 来制作 Spring Boot 项目镜像的过程啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值