Docker - Docker部署war包

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

使用Docker部署war项目,必须要用容器,我们就用tomcact容器,其实都是将war包丢到tomcat的webapps目录下,tomcat启动的情况下会自动解压war包

部署war包有两种方式

1、在Docker中安装tomcat容器的镜像,然后把war包丢到tomcat镜像下webapps中

注:如果tomcat关闭了,其webapps下的包就会消失

2、利用挂载,还是安装tomcat容器的镜像,但是不把war包丢到tomcat下的webapps中,直接创建一个外部文件夹,将这个外部文件夹跟wabapps关联,这样把war丢到新建的文件夹中,tomcat的webapps也能读取到这个war包,这就是挂载

1、修改springboot配置

(1)打包war包,修改pom.xml文件

<modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>docker-project-web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

(2)移除内置web模块自带的tomcat

<!-- 设置Tomcat打包的时候不打包下面配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>

(3)添加servlet依赖,不然打包报错

<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>

(4)项目加别名,在build标签下增加finalName,就是项目名,如果不加,项目名就是你的artifactId-version,生成的war包名称也是artifactId-version.war,浏览器访问的时候项目名字太长

<build>
        <finalName>dockerProect</finalName>
</build>

2、搜索Tomcat镜像

Docker官网 https://www.docker.com/

Docker镜像仓库 https://registry.hub.docker.com/

(1)直接取docker镜像仓库搜索

Docker - Docker部署war包

Docker - Docker部署war包

 (2)打开宿主机centos7以上系统

docker search tomcat

Docker - Docker部署war包

3、下载Tomcat镜像

 默认跟了  :latest  下载最新版;如全写  docker pull tomcat:latest

// 默认跟了  :latest  下载最新版;如全写  docker pull tomcat:latest
docker pull tomcat

可以查看容器

docker images

Docker - Docker部署war包

4、启动容器

注:这里需要做端口映射

从客户机上访问容器,需要有端口映射;docker容器默认此阿勇桥接模式与宿主机通信,需要将宿主机的IP端口映射到容器的IP端口上  使用 -p 参数

//映射8080 也可以,博主使用的 9090
docker run -d -p 9090:8080 tomcat:9.0


docker run -d -p 9090:8080 tomcat:9.0 --restart=always --privileged=true

1、--restart=always:当 Docker 重启时,容器能自动启动

docker run --restart具体参数值详细信息

no -  容器退出时,不重启容器;

on-failure - 只有在非0状态退出时才从新启动容器;

        –restart=on-failure:10 : 表示最多重启10次

always - 无论退出状态是如何,都重启容器;
 

2、--privileged=true:挂载宿主机目录,不会报权限问题

如果docker run 的时候没有加 --restart=always ,然后已经运行的docker容器,执行下面命令

# demo : 你的容器名称
docker update –-restart=always demo

查看容器状态 

docker ps

Docker - Docker部署war包

CONTAINER ID:每个容器的唯一标识符号,自动生成。类似于数据库中的主键

IMAGE :创建容器使用的镜像名称

COMMAND:运行容器时的命令

CREATED:容器创建的时间

STATUS:容器的运行状态,Up 8 months 指容器已运行8个月
        -created(已创建)
        -restarting(重启中)
        -running(运行中)
        -removing(迁移中)
        -paused(暂停)
        -exited(停止)
        -dead(死亡)
PORTS:容器开放的端口信息。
NAME:容器的别名,在运行容器执行docker run 时可使用 --name进行指定

5、访问 9090端口,如果发现网页无法访问,报错404

Docker - Docker部署war包

错误原因

Tomcat文件夹下的 webapps 文件夹是空的

tomcat 默认的欢迎页面实际上放在的路径应该是 webapps/ROOT/index.jsp 或者 index.html

解决办法

1、使用如下命令,查看容器ID

docker ps

2、进入容器

docker exec -it 容器ID /bin/bash

3、输入 ls 命令查看Tomcat目录下的文件及文件夹 

Docker - Docker部署war包

 4、 删除 webapps 目录,并且将 webapps.dist 目录重名为 webapps

mv webapps webapps2
mv webapps.dist/ webapps

或者 拷贝 webapps.dist 目录下的内容到 webapps 目录下

一、war包拷贝到Tomcat容器webapps文件夹下

1、可切换到根目录下,创建一个文件夹

mkdir varPackage

2、将本地的war包上传到 centos系统下的varPackage文件下(使用的SecureFX工具)

Docker - Docker部署war包

3、查看Tomcat容器安装路径,可以使用如下命令查看

docker exec -it Tomcat容器id /bin/bash

Docker - Docker部署war包

这是可以查看到Tomcat的路径 

退出容器:exit

4、拷贝varPackage文件下的war包拷贝到Tomcat容器下的webapps文件夹下

docker cp /warPackage/dockerProject.war Tomcat容器ID:/usr/local/tomcat/webapps

5、重启容器

docker restart +容器ID

二、挂载

1、可切换到根目录下,创建一个文件夹

mkdir varPackage

 2、将本地的war包上传到 centos系统下的varPackage文件下(使用的SecureFX工具)

Docker - Docker部署war包

 3、挂载

// -v(挂载) 虚拟机目录 容器目录
docker run -d -p 8088:8080 -v /root/warPackage/:/usr/local/tomcat/webapps /bin/bash

宿主机查看:

cd /root/warPackage
ls

容器内查看:文章来源地址https://www.toymoban.com/news/detail-508989.html

docker exec -it 容器ID /bin/bash
cd webapps
ls

到了这里,关于Docker - Docker部署war包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 在WindowsServer2012中部署war项目

    将jdk下载后进行安装 环境变量配置代码如下(放在最前面最后面都可以) %JAVA_HOME%bin;%JAVA_HOME%jrebin; 这样可以看到已经配置好了 官网下载后解压即可使用 解压该文件 以管理员的方式打开cmd命令窗口(不要直接打开cmd运行,可能会报错),并且进入到mysql安装目录的bin目录下。

    2024年01月21日
    浏览(24)
  • 一文讲解Linux上部署Web项目(war包)

    ​ 首先,我们要先将Web项目打成war包 ​ ​ 这里我们通过SSH客户端,连接远程Linux服务器,需要提前知道Linux的IP地址、登录用户名、密码等; ​ SSH工具常用的有Xshell和Xftp等,也有MobaXterm等 ​ 这里通过MobaXterm工具来演示: 没有安装或使用过此MobaXterm工具的,可参照这篇文章

    2024年02月07日
    浏览(38)
  • Linux 部署Java项目-jar包和war包(五)

    部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是jar包,下面小介绍两种包的区别: spring boot既可以打成war发布,也可以打成jar包发布。说一下区别: jar包: 直接通

    2024年02月04日
    浏览(33)
  • [ RuoYi ] 若依前后端分离 RuoYi-Vue 项目 war 包 Tomcat 项目部署

    Apache Tomcat® - Apache Tomcat 9 Software Downloads https://tomcat.apache.org/download-90.cgi Tomcat的主要特点和功能包括: ①Servlet和JSP容器:Tomcat作为一个Web服务器,可以解释执行Java Servlet和JSP代码,处理HTTP请求和响应,生成动态的Web页面。 ②独立性和易用性:Tomcat是一个独立的服务器,可以

    2024年02月07日
    浏览(49)
  • SpringBoot项目 Tomcat部署war程序时启动成功但是访问404异常处理

    Springboot项目 使用IntelliJ IDEA 将maven项目打war包,pom.xml文件中引入了依赖 并通过maven的package打包完后,放入tomcat的web-apps文件下 同时修改了打开conf文件夹下的server.xml文件,启动tomcat时出现了以下问题 SpringApplicationBuilder用于构建 Spring 应用,是SpringApplication和ApplicationContext实例

    2024年02月14日
    浏览(37)
  • 解决SpringBoot项目war部署到tomcat下无法Nacos中注册服务问题

           怎么解决Spring Boot项目部署到tomcat下无法Nacos中注册服务问题\\\",希望能够解决您遇到有关问题。 在使用Nacos作为注册中心的Spring Boot项目,以war包形式部署到服务器上,启动项目发现该服务无法在Nacos中注册。     查看源码,需从nacos的注册类找起,查找后发现,naco

    2024年02月10日
    浏览(37)
  • 如果你项目使用了MyBatis-Plus你一定要用它

    还是先举个例子,魂斗罗小游戏应该很多90后都玩过,那个时代没有Iphone,没有各种电子产品(小学初中时代),这种小游戏应该就是很多90后的青春,反正那个时候只要放假就白天黑夜得玩。它就是那种2个好基友边玩边捡各种装备的游戏,越玩的远捡的装备越好,玩得越高

    2023年04月22日
    浏览(44)
  • 部署jenkins(使用华为云war包,手动制作jenkins镜像)

    1、编写Dockerfile 2、制作镜像(将war包和Dockerfile放在同一个文件夹下) 1、编写docker-compose.yml文件 2、启动服务 1、获取初始密码 2、第一次选择不安装插件直接进入jenkins 3、添加jenkins用户 1、关闭jenkins服务 2、UpdateCenter通道 3、替换default.json 4、重新启动jenkins服务 至此jenkins环境已

    2024年02月15日
    浏览(28)
  • Docker:使用dockerFile创建镜像(war包和jar包)

    1、使用war包打镜像 (1)在war的当前路径下,新建一个文件——Dockerfile (2)编辑Dockerfile文件    vim Dockerfile Dockerfile文件内容: FROM java:8                # 选择项目中要求的版本 MAINTAINER ylb             # 作者 WORKDIR /穿件文件夹的路径    # 选择项目中要求的

    2024年02月15日
    浏览(37)
  • 使用IDEA如何将项目打包成war包

    第一步 使用快捷键 Ctrl + Alt + Shift + S 打开界面 2,进去之后,可以修改打包的war包名字和存放路径,默认是项目路径outartifacts下面,将右侧的全选,鼠标右键点击“Put into Output Root”。 3. 全部添加到左侧之后,点击ok 4, Build-Build Artifacts,进行打包项目成war 5,查看war

    2024年02月11日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包