【备战阿里】Day2-使用 Docker 部署 JavaWeb 项目

1,880 阅读1分钟

1,概览

将 JavaWeb 项目部署到安装了 Docker 的 Linux 服务器上主要有两种方式:

  1. 将项目打包成 War 包,然后部署到 Docker 的 Tomcat 容器中
  2. 将项目打包成 Jar 包,然后使用 Docker 的 JDK 镜像和 Dockerfile 将其制作成 Docker 镜像

2,使用 Tomcat 容器部署

优点:操作方便

缺点:项目端口要和 Tomcat 端口对应,即一个项目要开启一个 Tomcat 容器

接下来开始实战:

  1. 拉取 Tomcat 镜像

  2. 准备 JavaWeb 项目

  3. 将 JavaWeb 项目打包成 War 包(注意要准备好 web.xml)

  4. 为了方便将文件改名

  5. 将 War 传到服务器

  6. 启动 Tomcat 容器(注意端口对应)

docker run -d -p 8080:8080 --name tomcat tomcat

  1. 踩坑!Tomcat 的扫描目录位于 webapps,但是容器里有 webapps 和 webapps.dist,我们需要把 webapps 删除掉,然后将 webapps.dist 重命名为 webapps(因为 webapps.dist 里有数据)

  2. 将 demo.War 复制到 Tomcat 容器内的 webapps 目录,并重启容器

  3. 测试

3,使用 Dockerfile 打包成镜像

优点:使用的是类命令行启动,无需部署到 Tomcat 中

缺点:操作复杂,需要了解 Dockerfile 的使用

接下来开始实战:

  1. 拉取 Java:8-alpine 镜像(用来生成项目镜像)

  2. 打包项目为 Jar 包

  1. 将 Jar 包上传到服务器并在其所在目录新建 Dockerfile 文件(Dockerfile 文件没有后缀且名字必须 D 大写,f 小写)

  2. 运行 docker 命令生成镜像(. 表示在当前目录寻找 Dockerfile 文件)

docker build -t springdemo:1.0 .

  1. 查看生成的镜像并运行

  2. 测试