如何用docker在自己服务器上部署springboot项目

这篇具有很好参考价值的文章主要介绍了如何用docker在自己服务器上部署springboot项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、将springboot项目打包

1、maven clean项目

如何用docker在自己服务器上部署springboot项目,java,spring boot,开发语言

2、maven package项目

如何用docker在自己服务器上部署springboot项目,java,spring boot,开发语言

打包成功之后生成jar文件(在target目录下)

如何用docker在自己服务器上部署springboot项目,java,spring boot,开发语言

3、为Java创建Dockerfile

引入jdk8的Docker镜像

FROM openjdk:8

为了使运行其余命令时更容易,让我们设置映像的工作目录。这将指示Docker使用此路径作为所有后续命令的默认位置。通过这样做,我们不必键入完整的文件路径,但可以使用基于工作目录的相对路径。

WORKDIR /app

在运行mvnw依赖项之前,需要将Maven包装器和pom.xml文件放入映像中。我们将使用COPY命令来完成此操作。COPY命令有两个参数。第一个参数告诉Docker你想复制什么文件到镜像中。第二个参数告诉Docker你想把文件复制到哪里。我们将把所有这些文件和目录复制到我们的工作目录- /app中。

COPY .mvn/ .mvn
COPY mvnw pom.xml ./

一旦映像中有了pom.xml文件,就可以使用RUN命令执行命令mvnw dependency:resolve。这与我们在机器上本地运行mvnw(或mvn)依赖项的方式完全相同,但是这次依赖项将被安装到映像中。

RUN ./mvnw dependency:resolve

至此,我们已经有了一个基于OpenJDK版本8的映像,并且我们还安装了依赖项。我们需要做的下一件事是将源代码添加到镜像中。我们将使用COPY命令,就像处理上面的pom.xml文件一样。

COPY src ./src

这个COPY命令获取位于当前目录中的所有文件,并将它们复制到映像中。现在,我们所要做的就是告诉Docker,当我们的镜像在容器中执行时,我们想要运行什么命令。我们使用CMD命令来执行此操作。

CMD ["./mvnw", "spring-boot:run"]

这里是完整的Dockerfile。

FROM openjdk:8

WORKDIR /app

COPY .mvn/ .mvn
COPY mvnw pom.xml ./
RUN ./mvnw dependency:resolve

COPY src ./src

CMD ["./mvnw", "spring-boot:run"]

4、创建一个.dockerignore文件

为了提高构建的性能,作为一般的最佳实践,我们建议您在与Dockerfile相同的目录下创建一个.dockerignore文件。在本教程中,.dockerignore文件应该只包含一行:

target

这一行将目标目录(其中包含来自Maven的输出)从Docker构建上下文中排除。有很多很好的理由来仔细构造一个.dockerignore文件,但是现在这个一行文件就足够了。

5、构建镜像

docker build --tag java-docker .

6、查看本地镜像

docker images

如何用docker在自己服务器上部署springboot项目,java,spring boot,开发语言

7、一个镜像可以有多个标签。让我们为我们构建的镜像创建第二个标签,并查看其图层。

docker tag java-docker:latest java-docker:v1.0.0

如何用docker在自己服务器上部署springboot项目,java,spring boot,开发语言

让我们移除刚刚创建的标签。为此,我们将使用rmi命令。rmi命令代表“remove image”。

docker rmi java-docker:v1.0.0

二、将镜像作为容器运行

1、要在容器中运行镜像,我们使用docker run命令。docker run命令需要一个参数,即镜像的名称。让我们启动映像并确保它正确运行。在终端上运行以下命令:

docker run java-docker

如何用docker在自己服务器上部署springboot项目,java,spring boot,开发语言

2、让我们网页访问《服务器ip》:9090

如何用docker在自己服务器上部署springboot项目,java,spring boot,开发语言

可以看到无法访问,因为我们的容器是隔离运行的,包括网络。让我们停止容器并重新启动本地网络上发布的端口9090。

3、要停止容器,请按ctrl-c。这将返回到终端提示符。

4、启动容器并将端口9090暴露给主机上的端口9090。

要为容器发布端口,我们将在docker运行命令上使用——publish标志(简称-p)。——publish命令的格式为[host port]:[container port]。因此,如果我们想要将容器内部的端口9090公开给容器外部的端口9090,我们将把9090:9090传递给——publish标志

docker run --publish 9090:9090 java-docker

5、再次访问,发现变为了404,说明成功了

如何用docker在自己服务器上部署springboot项目,java,spring boot,开发语言

现在,按ctrl-c停止容器。

6、以后端模式运行

我们可以使用——detach或简称为-d。Docker像之前一样启动容器,但这一次,它将从容器“分离”并返回终端提示符。

docker run -d -p 9090:9090 java-docker

如何用docker在自己服务器上部署springboot项目,java,spring boot,开发语言

Docker在后台启动我们的容器,并在终端上打印容器ID。

确保容器正常运行,用同样的路径访问文章来源地址https://www.toymoban.com/news/detail-756726.html

到了这里,关于如何用docker在自己服务器上部署springboot项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器

    如果要参考gitlab配置请参考Gitlab+Webhook自动推送并更新Springboot项目 Gitlab的配置部分 Jenkins服务器(Centos7.6): docker安装的jenkins,参考Jenkins(docker安装)部署Springboot项目 JDK1.8 Maven3.6.3 注意docker安装的jenkins,而且是较新的版本,所以jenkins容器内的java版本是11的,而我的项目是基于JDK1.8的

    2024年02月13日
    浏览(44)
  • 如何用个人电脑搭建一台本地服务器,并部署项目到服务器详细教程

    服务器是一种高性能计算机,作为网络的节点,它存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。与普通计算机相比,服务器具有高速CPU运算能力、长时间可靠运行、强大I/O外部数据吞吐能力以及更好的扩展性。 服务器的主要用途广泛,包括: 网站托管 :服

    2024年04月29日
    浏览(88)
  • 【部署LLaMa到自己的Linux服务器】

    这真的不是一个简单的过程,绕了不少弯路。 方法1:有git可以直接克隆到本地 创建一个空文件夹然后鼠标右键,然后输入 git clone https://github.com/facebookresearch/llama.git 方法2:直接下载 打开网站LLaMa git 官方,直接下载zip文件就行 这里在conda中创建一个虚拟环境 conda create -n 环

    2024年01月17日
    浏览(43)
  • 搭建自己的gitlab服务器(Docker版)

    鉴于现在的大部分公司都会使用Gitlab作为自己的代码仓库,有必要搭建起来玩一玩。以下完全是自己的实践结果,并已应用于20~30人团队的使用中,目前系统运行比价稳定,就是有点吃内存。 查询docker镜像gitlab-ce gitlab-ce是它的社区版 下载镜像 下载镜像gitlab/gitlab-ce 创建gitl

    2024年01月18日
    浏览(50)
  • 教你用docker搭建自己的邮件服务器-Ewomail

    EwoMail 官方文档 EwoMail-Admin版本为1.05 rainloop 版本为1.11.1 运行docker mail.ewomail.com 换成自己的域名 docker-compose方式 或 可配置参数 MYSQL_ROOT_PASSWORD mysql数据库root密码,默认:mysql MYSQL_MAIL_PASSWORD mysql数据库ewomail密码,默认:123456 URL 网站链接,后面不要加/线 WEBMAIL_URL 邮件系统链接

    2024年02月08日
    浏览(44)
  • 如何快速入门部署自己的Flask程序(本地+云服务器)?

    一、需求背景 :人工智能训练好的模型model,需要放到服务器上,作为基础能力提供给应用侧,否则model只能中电脑本地处理。那么怎么解决这个部署到服务器上的问题呢? 二、解决思路 :web应用部署,有3种主流的方式, 1.Django:大而全,集成了很多组件,属于全能型、重

    2024年02月03日
    浏览(57)
  • 内网服务器(无法联网)使用docker搭建自己的NAS服务(filebrowser)

    课题组内有一台内网部署的ubuntu 23服务器,想要在上面运行一个NAS服务,供内网环境中的文件存储与分享。希望搭建一个功能简单、容易上手的NAS服务,并且希望通过docker部署,减少对于服务器上现有应用的影响。另外,内网服务器意味着它无法连接互联网下载应用,只能在

    2024年03月16日
    浏览(48)
  • 【docker】部署svn服务器,docker安装部署svn服务器

    话不多说直接上步骤! 以上代码中,在容器中的/home/svn/test目录创建代码仓库,会同步到本机的/var/svn目录。我们先进行svn仓库配置。 SVN库中的配置目录 conf 有三个文件: 配置权限配置文件 authz 编辑 authz ,内容参考如下: 配置账号密码文件 passwd 编辑 passwd ,内容参考如下:

    2024年02月02日
    浏览(55)
  • 如何把自己写的前端界面用tomcat部署到服务器中

    一、所需环境 tomcat8.5.85,CentOS7 在部署之前要确认自己的tomcat可以运行 二、开始部署,把自己要部署的前端项目发送到tomcat 的webapp目录下 我这里使用的是xftp传送过去的 三、配置tomcat的conf/server.xml文件 在之间添加如下配置 注意 其中person为我项目的名字 我的项目person中打开

    2024年02月08日
    浏览(51)
  • 云服务器部署开源ChatGLM-6B,让你也能拥有自己的ChatGPT

    一、背景 最近GPT不仅发布了GPT-4,而且解除封印可以联网了。不得不赞叹AI更新迭代的速度真快,都跟不上节奏了。但是大家也注意到了吧,随着GPT的每次更新,OpenAI对其开放使用的限制也越来越大。之前国内网随便访问GPT3,现在动不动就封号 所以,今天就来教大家部署国内

    2024年02月12日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包