Docker:Docker从入门到精通(四)- 使用Docker部署SpringBoot项目

一、Dockerfile介绍

  Dockerfile 是一个文本文件,通过它,用户可以定义如何构建 Docker 镜像。这个文件包含了一系列命令和参数,这些命令会在镜像构建过程中被执行,并最终创建一个新的镜像。

二、常用命令

  Dockerfile 的指令是预定义的,每条指令都会为镜像创建一个新的层(layer)。这些层是 Docker 镜像的核心组成部分,它们允许 Docker 通过增量更新来高效地管理镜像和容器

以下是一些常用的指令:

1. FROM
指定基础镜像。指定基础镜像,用于构建当前镜像的起点。必须是 Dockerfile 中的第一条非注释命令。

FROM ubuntu:20.04

2. RUN
执行命令并创建新的镜像层

RUN apt-get update && apt-get install -y python3

3. COPY
将文件或目录从构建上下文复制到容器内部。与 ADD 类似,但 COPY 仅复制本地文件,不支持自动解压和 URL 下载。

COPY <src>... <dest>
COPY . /app  复制当前目录的内容到容器的 /app 目录

4. ADD
将文件、目录或远程 URL 地址的内容添加到镜像中。ADD 命令会自动解压压缩文件,并且如果源文件是 URL,则会自动下载。但需要注意的是,ADD 命令的行为可能不够清晰,因此在可能的情况下,推荐使用 COPY 命令

ADD https://example.com/file.tar.gz /app

5. CMD
设置容器启动时的默认命令。Dockerfile 中可以有多个 CMD 命令,但只有最后一个会被执行。

CMD ["python3", "app.py"]

6. ENTRYPOINT
配置容器启动时运行的命令,使得容器以该命令作为其可执行程序。与 CMD 不同,ENTRYPOINT 的参数不会被 docker run 命令中的参数覆盖,而是作为参数传递给 ENTRYPOINT 指定的命令。

ENTRYPOINT ["python3"]

7. ENV
设置环境变量,无论是后续的其它指令(如 RUN),还是运行时的应用,都可以直接使用这里定义的环境变量。

ENV PYTHON_VERSION=3.8

8. WORKDIR
设置工作目录,用于后续 RUN、CMD、ENTRYPOINT、COPY 和 ADD 指令的默认执行目录。

WORKDIR /app

9. EXPOSE
声明容器运行时的监听端口,但并不实际将端口暴露出来。通常与 -p 参数一起使用,将宿主机的端口映射到容器内部。

EXPOSE 8080

三、Dockerfile制作

我们准备一个jar包,springboot的项目yd-demo-0.0.1-SNAPSHOT.jar

编写dockerfile

准备一个项目的jar包  yd-demo-0.0.1-SNAPSHOT.jar


基于 openjdk:8-jre 为基础镜像进行构建
FROM openjdk:8-jre

进入这个容器的目录,目录不存在会创建并指定为/data
WORKDIR /data


将jar包放入/app目录下,并重新命名为app.jar
ADD yd-demo-0.0.1-SNAPSHOT.jar yd-demo.jar

对外暴露的端口号
EXPOSE 8443

ENTRYPOINTCMD 结合使用,ENTRYPOINT固定命令,CMD根据参数的不同 运行不同的jar包(动态参数)
ENTRYPOINT ["java","-jar"] 
CMD ["yd-demo.jar"]

相当于 java -jar xxx.jar

四、构建镜像

将yd-demo-0.0.1-SNAPSHOT.jar包,还有dockerfile文件传到你需要的目录下面
在这里插入图片描述

执行命令,构建镜像

docker build -t yd-demo .

. 表示当前目录

在这里插入图片描述

构建镜像命令说明

docker build -t [NAME]:[TAG] PATH | URL | -
-t, --tag:指定生成的镜像的名称和标签。格式为 NAME:TAG。如果不指定标签,默认为 latest。

PATH | URL | -:指定 Dockerfile 所在的路径、URL 或标准输入。

除了 -t 选项,docker build 命令还有其他一些常用选项

--file, -f:指定 Dockerfile 的名称(默认是 Dockerfile)。

--no-cache:构建镜像时不使用缓存。

--build-arg:设置构建时的变量。

-q, --quiet:安静地构建镜像,只显示构建结果的简要信息。

启动容器

docker run -d --name yd-demo -p 8443:8443 yd-demo

查看容器日志

docker logs -f 0efabb83a401(对应自己的容器ID)

在这里插入图片描述

浏览请求接口
在这里插入图片描述

  通过 Docker 部署 Spring Boot 项目,可以简化环境配置和部署流程。只需编写 Dockerfile 并构建镜像,即可在任何支持 Docker 的环境中运行 Spring Boot 应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的狍子007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值