GVKun编程网logo

Docker 创建 tomcat 容器并部署 web 项目(docker搭建tomcat)

7

对于想了解Docker创建tomcat容器并部署web项目的读者,本文将是一篇不可错过的文章,我们将详细介绍docker搭建tomcat,并且为您提供关于3.在eclipse中创建Web项目,并部署到

对于想了解Docker 创建 tomcat 容器并部署 web 项目的读者,本文将是一篇不可错过的文章,我们将详细介绍docker搭建tomcat,并且为您提供关于3.在eclipse中创建Web项目,并部署到Tomcat上、centos 7 中安装 docker和创建 tomcat容器并部署web应用、Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的项目 yml 配置文件代码、Docker | 制作tomcat镜像并部署项目的有价值信息。

本文目录一览:

Docker 创建 tomcat 容器并部署 web 项目(docker搭建tomcat)

Docker 创建 tomcat 容器并部署 web 项目(docker搭建tomcat)

1. 拉取 Tomcat 镜像:

docker pull tomcat

或者拉取我封装好的镜像,直接跳转到第四步

docker pull  yanghe001/tomcat

 

2. 二次封装镜像:

创建基础容器:

 

docker run -itd --name tomcat -p 6066:8080 tomcat

 

修改容器中 server.xml:

进入 tomcat 的 conf 目录编辑 server.xml

Host 配置项添加一行:

<Context path="" docBase="/opt"   reloadable="false"/>

 

3. 提交二次镜像:

 

docker commit tomcat tomcat_yh

 

4. 创建容器:

 

docker run -it  -v /opt/work/docker/api:/opt -p 30002:8080 tomcat_yh

 

 -v  挂载你项目的解压目录【/opt/work/docker/api】到容器目录【/opt】        

5. 测试访问:

ip:30002

 

3.在eclipse中创建Web项目,并部署到Tomcat上

3.在eclipse中创建Web项目,并部署到Tomcat上

1.找到创建web项目的菜单

 

2.创建web项目并选择web环境

3.查看创建好的web项目结构

 

 

4.在web项目的webContent文件夹下创建jsp页面

 

 5.查看是否创建jsp页面成功,并编辑jsp页面

 

 6.查找server服务器选项卡

 

 

7.将javaweb项目和tomcat服务器绑定

 

 

 

 

8.启动tomcat

 

 9.在浏览器访问web项目

 

centos 7 中安装 docker和创建 tomcat容器并部署web应用

centos 7 中安装 docker和创建 tomcat容器并部署web应用

在 CentOS 7 中安装 Docker 和创建 Tomcat 容器并部署Web应用

一般部署Web应用都需要安装数据库,比如 MysqL 和 Redis,MysqL 和 Redis 属于多个Web应用公用的系统,所以就不需要安装到 Docker 里了,直接在操作系统里安装就好。所以,本文只讲解如何在 Docker 里创建 Tomcat 容器并部署Web应用,那么有人会问,在 Docker 里运行的应用如何访问安装在操作系统里的数据库呢?实践证明:在 Docker 容器里运行的Web应用可以直接访问安装在操作系统里的数据库(比如 MysqL 和 Redis),不需要任何特殊配置。

一、安装 Docker

1. 检查操作系统内核版本
检查操作系统内核版本,据说必须是3.10及以上。
# uname -r
3.10.0-862.9.1.el7.x86_64

2. 安装 Docker
使用 yum 命令安装 Docker。
# yum install docker
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.nwsuaf.edu.cn
base                                                     | 3.6 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
(1/2): extras/7/x86_64/primary_db                          | 205 kB   00:00     
(2/2): updates/7/x86_64/primary_db                         | 6.0 MB   00:00     
Resolving Dependencies
... ...
Complete!

3. 启动 Docker
[root@localhost /]# systemctl start docker

4. 查看 Docker 版本
# docker -v
Docker version 1.13.1,build 8633870/1.13.1

5. 设置开机自启动 Docker
# systemctl enable docker

二、安装 Tomcat 并部署WAR工程

1. 看 Docker 支持哪些版本的 Tomcat
打开 https://hub.docker.com/r/library/tomcat/ 查看 Docker 都支持哪些版本的Tocmat。

2. 在 Docker 里安装 Tomcat
在 Docker 里安装 Tomcat,拉取 Tomcat 镜像,不指定版本就是默认安装最新版,这里安装 8.5.35 版的。
# docker pull tomcat:8.5.35
Trying to pull repository docker.io/library/tomcat ... 
8.5.35: Pulling from docker.io/library/tomcat
bc9ab73e5b14: Pull complete 
193a6306c92a: Pull complete 
e5c3f8c317dc: Pull complete 
d21441932c53: Pull complete 
fa76b0d25092: Pull complete 
346fd8610875: Pull complete 
3ca5d6af9022: Pull complete 
c06cfa2cea32: Pull complete 
205950a5a114: Pull complete 
6332a55c669e: Pull complete 
723a722311b8: Pull complete 
f5b82bb44c57: Pull complete 
Digest: sha256:1b18333c03f68a64eb5dcc246984e89cf2d6737b04d95aa34cd337d8abfe796e
Status: Downloaded newer image for docker.io/tomcat:8.5.35 

3. 查看本地镜像
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    8.5.35              6759d91a032b        6 days ago          463 MB

4. 基于镜像新建一个 Tomcat 容器并启动

注意,命令后面的 6759d91a032b 是前面拉取的 Tomcat 镜像ID!实践证明,如果用镜像名而不用镜像ID,那么就会自动拉取最新版的镜像使用,而不是刚才手动拉取的 8.5.35 版本的镜像。

# docker run --name tomcat8080 -v /etc/localtime:/etc/localtime:ro -d -p 8080:8080  6759d91a032b
Unable to find image 'tomcat:latest' locally
Trying to pull repository docker.io/library/tomcat ... 
latest: Pulling from docker.io/library/tomcat
Digest: sha256:1b18333c03f68a64eb5dcc246984e89cf2d6737b04d95aa34cd337d8abfe796e
Status: Downloaded newer image for docker.io/tomcat:latest
e3274a72e8d62a0f3022d3201405ce586147b3031c1232452d001ee41fb9c938

其中 “-v /etc/localtime:/etc/localtime:ro” 表示让容器使用宿主机的时间时区。
-v 标签为容器添加 volume,后面的 :ro 指定该 volume 为只读。
注意:如果容器中指定的挂载目录存在相同的文件时,会被宿主机覆盖掉。

如果想把 Tomcat 的 webapps 目录也挂载到宿主机目录(比如挂载到 /data/webapps),那么就是下面这样,需要再写个 -v 选项:
# docker run --name tomcat8080 -v /etc/localtime:/etc/localtime:ro -v /data/webapps:/usr/local/tomcat/webapps:rw -d -p 8080:8080 6759d91a032b
这时查看宿主机目录(/data/webapps)是空的,进入容器查看 webapps 目录也是空的,放一个 WAR 包应用到宿主机目录(/data/webapps)下,一会 WAR 包解压生成一个同名的文件夹,说明挂载 webapps 目录成功。

查看容器:
# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                              NAMES
054f35167ec5        tomcat              "catalina.sh run"   4 seconds ago       Up 4 seconds        8080/tcp,0.0.0.0:8686->8686/tcp   tomcat8080

查看宿主机时间:
# date
Wed Apr 10 10:16:45 CST 2019

进入容器查看时间:
# docker  exec -it  tomcat8080   /bin/bash
root@054f35167ec5:/usr/local/tomcat# date
Wed Apr 10 10:16:50 CST 2019
与宿主机的时间一致。

但是 Tomcat 使用的时区还需要单独设置一下,否则部署在 Tomcat 里的工程取到的时间可能不是 Docker 容器的时间。设置很简单,只需在 bin 目录下的 catalina.sh 文件里加上时区即可,如下。
进入容器:
# docker  exec -it  tomcat8080   /bin/bash
进入 bin 目录:
root@054f35167ec5:/usr/local/tomcat# cd bin/
root@054f35167ec5:/usr/local/tomcat/bin# ls
catalina.sh      ......
先备份一下文件 catalina.sh 文件。

因为在容器内不能修改文件,那就把容器文件拷贝到宿主机修改,修改后再拷贝到容器覆盖原文件。
退出容器,把 Tomcat 容器 bin 目录下的 catalina.sh 拷贝到宿主机:
# docker cp tomcat8080:/usr/local/tomcat/bin/catalina.sh ./
在宿主机里编辑 catalina.sh 文件:
打开文件,找到 JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS",在双引号后面加上 “-Duser.timezone=Asia/Shanghai”(当然要与前面内容用空格隔开),修改后是这样的 JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Duser.timezone=Asia/Shanghai" 。

文件,然后重启 Tomcat 或重启容器。

5. 查看运行的 Tomcat 容器
# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
9653b878cac6        tomcat              "catalina.sh run"   13 days ago         Up 13 days          0.0.0.0:8080->8080/tcp   tomcat8080

不加 -a 参数只能查看到运行中的容器,加上 -a 参数可以查看所有的容器。举例,如果上面的 Tomcat 容器是退出(Exited)状态,那么就需要加 -a 参数才能看到,如下:
# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
9653b878cac6        tomcat              "catalina.sh run"   9 days ago          Exited (143) 8 days ago                       tomcat8080

启动一个已存在的容器用 “start  容器ID” 命令,其中 “容器ID” 可以只写前面几位,Docker 能识别出是哪个容器即可。如下:
# docker start 965
965

再看容器已经启动了:
# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
9653b878cac6        tomcat              "catalina.sh run"   9 days ago          Up 39 seconds       0.0.0.0:8080->8080/tcp   tomcat8080

6. 试试用浏览器打开 Tomcat 界面
这时在浏览器输入 IP:8080 就可访问默认的 Tomcat 界面了。

7. 部署Web应用(WAR工程)
先学习下基本的操作命令。

获取容器的长ID(tomcat8080 是容器名):
# docker inspect -f '{{.Id}}' tomcat8080
9653b878cac63b0c22500834c81b3f0d892d7e201c298d58d7cc9fdd5387492e

进入容器(965是容器ID的前三位数,当然也可以多写几位,只要 Docker 能唯一识别容器即可):
# docker  exec -it  965   /bin/bash
执行后直接进入容器,命令提示符由系统的转为容器的了,root@ 后面的“9653b878cac6”是容器ID(短ID),冒号后面的“/usr/local/tomcat”是容器目录,这个目录是 Docker 内的目录不是系统目录。如下:
root@9653b878cac6:/usr/local/tomcat# pwd
/usr/local/tomcat
root@9653b878cac6:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  include  lib  logs  native-jni-lib  temp  webapps  work

顺便删除 Tomcat 的 webapps 目录下的所有内容:
root@9653b878cac6:/usr/local/tomcat# cd webapps/
root@9653b878cac6:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager
root@9653b878cac6:/usr/local/tomcat/webapps# rm -fr *
root@9653b878cac6:/usr/local/tomcat/webapps# ls

退出容器用 exit 命令:
root@9653b878cac6:/usr/local/tomcat/webapps# exit
exit
直接回到了系统,命令提示符由容器的转为系统的了:
[root@localhost /]# 

下面开始部署Web应用,很简单就是拷贝WAR包文件到容器中。

将要部署的WAR包拷贝到 Tomcat 容器的 webapps 目录下(命令格式是“docker cp 本地文件 容器ID:容器路径”,其中容器ID可以只写长ID的前面几位):
# docker cp testdocker.war 965:/usr/local/tomcat/webapps/
进入容器看到了拷贝的WAR包文件:
# docker  exec -it  965   /bin/bash
root@9653b878cac6:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  include  lib  logs  native-jni-lib  temp  webapps  work
root@9653b878cac6:/usr/local/tomcat# cd webapps/
root@9653b878cac6:/usr/local/tomcat/webapps# ls
testdocker  testdocker.war
看到这个WAR包已经解压了,应用跑起来了。

8. 用浏览器访问部署的Web应用
打开浏览器输入 IP:8080/testdocker 就打开了部署的Web应用界面。

总结

以上是小编为你收集整理的centos 7 中安装 docker和创建 tomcat容器并部署web应用全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

原文地址:https://blog.csdn.net/whatday

Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的项目 yml 配置文件代码

Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的项目 yml 配置文件代码

场景

Docker-Compose 简介与 Ubuntu Server 上安装 Compose:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301

Docker Compose 基本使用 - 使用 Compose 启动 Tomcat 为例:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080

Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的商城项目 (附源码和 sql 下载):

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100941366

实现

version: ''3'' 
services: 
  web:
    restart: always 
    image: tomcat 
    container_name: web
    ports:      
      - 8080:8080
    volumes:
      - /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT
 
  mysql:
    restart: always
    image: mysql:5.7.22
    container_name: mysql
    ports:
      - 3306:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  mysql-data:

 

注:

这里是 mysql5.7.22


Docker | 制作tomcat镜像并部署项目

Docker | 制作tomcat镜像并部署项目

本文讲解如何制作自己的tomcat镜像,并使用tomcat部署项目

原料准备:

tomcat、jdk安装包,dockerfile文件

步骤

1、准备压缩包

jdk-8u301-linux-x64.tar.gz -> jdk1.8.0_301

apache-tomcat-7.0.107.tar.gz -> apache-tomcat-7.0.107

2、编写dockerfile文件

官方指定命名Dockerfile,这样构建的时候不用加-f参数指定文件
FROM centos
MAINTAINER xiao<find_onepiece@163.com>

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u301-linux-x64.tar.gz /usr/local
ADD apache-tomcat-7.0.107.tar.gz /usr/local

RUN yum -y install vim

ENV MYPATH /usr/local

WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_301
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.107
ENV CATALINE_BASH /usr/local/apache-tomcat-7.0.107
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINE_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-7.0.107/bin/startup.sh && tail -f /usr/local/apache-tomcat-7.0.107/bin/logs/catalina.out

3、执行构建

docker build -t diytomcat . # 自动寻找Dockerfile文件

构建成功:

Successfully built e68ad8caa2a4

Successfully tagged diytomcat:latest

4、启动容器

/webapps/test 部署的项目路径,浏览器访问ip:port/test

docker run -it -p 9090:8080 --name xiaoTomcat -v /home/xiao/build/tomcat/test:/usr/local/apache-tomcat-7.0.107/webapps/test -v /home/xiao/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-7.0.107/logs diytomcat

5、访问查看

数据卷挂载成功

6、发布项目

已经挂载了数据卷,所以编写宿主机的项目文件就可以了

在挂载路径 /home/xiao/build/tomcat/test

  1. 新建文件 web.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
  1. 新建文件 index.jsp,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<h2>Hello World!</h2>
<h2>xiao</h2>
<%
System.out.println("my tomcat project logs");
%>
</body>
</html>

7、浏览器访问

url:ip:port/test

8、查看日志卷

tail -f catalina.out

完成从构建镜像到部署项目


我是 甜点cc

热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。

希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。

今天关于Docker 创建 tomcat 容器并部署 web 项目docker搭建tomcat的分享就到这里,希望大家有所收获,若想了解更多关于3.在eclipse中创建Web项目,并部署到Tomcat上、centos 7 中安装 docker和创建 tomcat容器并部署web应用、Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的项目 yml 配置文件代码、Docker | 制作tomcat镜像并部署项目等相关知识,可以在本站进行查询。

本文标签: