Linux系列:从0到1用Docker部署springboot项目

目录

1.前提条件

2.编写DockerFile镜像文件

3.打包SpringBoot项目

 4.通过软件Xftp进行传输(*)

1.点击“文件-新建”​编辑

5.操作远程主机

1.docker构建

2.容器运行

 6.容器的关闭和删除


1.前提条件

Linux、docker、xftp的安装、一台可以访问的远程主机

2.编写DockerFile镜像文件

Dockerfile 是一个文本文件,包含了一系列的指令,用于定义如何构建 Docker 镜像。创建好 Dockerfile 后,可以使用命令来构建镜像,然后将这个镜像用于部署应用程序。

1.在项目的根目录下命名一个文件“DockerFile.txt”,写完后重命名为‘DockerFile’(这里最好命名成‘DockerFile’,因为 Docker 默认会寻找名为 Dockerfile 的文件来构建镜像。),用于定义镜像文件,例如我的:

# 使用一个基础镜像,这里使用 OpenJDK 11 作为基础镜像
FROM openjdk:11-jre-slim

# 设置工作目录
WORKDIR /app

# 复制可执行的 JAR 文件到镜像中
COPY ./springboot-web2-0.0.1-SNAPSHOT.jar .

# 定义容器启动命令
CMD ["java", "-jar", "springboot-web2-0.0.1-SNAPSHOT.jar"]

以上根据自己的项目、具体目录作出调整修改,上面的工作目录是容器的目录,我写的‘/app’这个目录即使不存在,docker内也会进行自动创建,因此可以按自己需求进行命名

注意:COPY这行中一般是要用‘./’进行开头的,这表示相对路径(最好别用绝对路径,已踩坑!!)因为到时我们是在DockerFile文件所在目录下进行Docker的构建

3.打包SpringBoot项目

在确认项目没问题后,我们进行打包,点击Maven- LifeCycle-package进行打包,之后会生成一个target文件,里面就有我们需要的jar包:

注意:需要留意项目中配置的监听端口,后面会用到

 4.通过软件Xftp进行传输(*)

 这一步针对的是从本地Windows打包后,需要将jar包传输到对应的远程主机上时用到的,如果本地就是docker需要构建的地方,那么可以忽略这一步

传输步骤:

1.点击“文件-新建”

 需要填写的有:名称、主机、用户名和密码(这边是用Password进行登录,也可用公钥)

其中名称是自定义,主机是对应的远程主机IP以及主机的用户名和密码(我这里用的是虚拟机作示例)

连接成功后,如图所示:

 找到你要刚刚打包好的jar包,进行传输,直接进行拖拽即可:

5.操作远程主机

登录上远程主机,随后用docker指令进行构建部署

1.docker构建

在终端中,导航到项目根目录并执行以下命令来构建Docker镜像。将 my-spring-app 替换为你想要的镜像名称。

docker build -t my-spring-app .

出现上述运行结果,表示镜像名称为“my-spring-app”的容器构建成功

2.容器运行

 构建完成后,使用以下命令来运行Docker容器。将 my-spring-container 替换为你想要的容器名称。

docker run -d --name my-spring-container -p 8080:8080 my-spring-app

上面我的镜像名称取名为“my-spring-app”,且我的SpringBoot项目的监听端口设置为了8082,所以我的指令是这样的:

让我解释一下每部分的含义:

  1. -d 参数:这表示在“后台”运行容器,即在“守护进程”模式下。容器会在后台运行,不会占用当前终端。

  2. -p 8080:8082 参数:这表示将主机的 8080 端口映射到容器的 8082 端口。第一个 8080 是主机上的端口,第二个 8082 是容器内的端口。这样你可以通过访问主机的 http://localhost:8080 来访问容器内运行的应用程序。

  3. my-spring-app:这是容器的名称,通常由 Docker 自动生成。你可以使用这个名称来管理容器,如停止、删除等操作。

  4. 最后的输出 b421554123ebca89a45dca25096119b75df7a9dd3a73b6135bfc21b5ba061816是容器的唯一标识符,通常称为容器ID。

注意;上述两个8080,其中

其中下面的一串字符是该容器的唯一标识符,通常称为容器ID 到此我们已经成功运行

检查一下用“docker ps”检查下docker中正在运行中的容器

可以看到,名称为“my-spring-app” 的容器已经运行,并将容器内部的 8082 端口映射到了主机的 8080 端口,ip的0.0.0.0是由于我在远程主机上部署的,外网访问还是需要通过该远程主机的ip,格式为“ip地址:端口号”即可

用其它的主机进行访问,运行成功

 6.容器的关闭和删除

你也可以随时关闭容器:

docker stop <container_id>

关闭并删除容器:

docker rm -f <container_id>

这将停止并删除具有容器 ID 为 <container_id> 的容器。请注意,这会永久删除容器,并且容器内的数据可能会丢失,因此请谨慎使用 -f 参数。

如果你想要停止并删除所有的容器,可以使用以下命令:

docker stop $(docker ps -aq)
docker rm $(docker ps -aq)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蜗牛变涡流

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

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

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

打赏作者

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

抵扣说明:

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

余额充值