如何部署Docker Tomcat?

Docker

1 基础知识

– Tomcat服务是一个开源免费的WEB应用服务器
– Tomcat属于轻量级应用服务器(适用于中小型低并发环境)
– Tomcat是开发和调试JSP程序额首先
– Tomcat实际上是Apache服务器的扩展(独立运行)

2 最佳实践

2.1 部署Docker集群

如果你尚未部署Docker集群环境,请参阅如下章节部署,

如何部署Docker生产环境?

2.2 部署前的准备

In docker01

cd /data/docker/images/
docker load -i tomcat_8.0.47.tar
docker tag tomcat:8.0.47 docker01.cmdschool.org:5000/tomcat:8.0.47
docker push docker01.cmdschool.org:5000/tomcat:8.0.47
docker image rm tomcat:8.0.47

另外,安装包的离线下载请在能上网的docker环境的机器上使用如下命令,

docker pull tomcat:8.0.47
docker save tomcat:8.0.47 -o tomcat_8.0.47.tar

另外,其他版本请从以下链接下载,
https://hub.docker.com/_/tomcat

2.2 部署tomcat

In docker01

2.2.1 创建服务配置文件

vim /data/docker/yml/tomcat-stack.yml

加入如下配置,

version: '3.8'

services:

  tomcat:
    image: docker01.cmdschool.org:5000/tomcat:8.0.47
    #volumes:
    #  - /data/docker/service/tomcat/conf/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml
    #  - /data/docker/service/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
    #  - /data/docker/service/tomcat/webapps:/usr/local/tomcat/webapps
    ports:
      - 8080:8080
    environment:
      TZ: Asia/Shanghai
    deploy:
      replicas: 1
      placement:
        constraints: [node.labels.tomcat == true]
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "5"

根据配置需求创建数据存放目录,
In docker01

mkdir -p /data/docker/service/tomcat

根据配置的需求设置运行标记,
In docker01

docker node update --label-add tomcat=true docker01.cmdschool.org

2.2.2 部署服务

docker stack deploy -c /data/docker/yml/tomcat-stack.yml tomcat

2.2.3 测试容器使用

In docker02

docker exec -it `docker container ls | grep 'tomcat' | cut -d" " -f1 ` bash

2.2.4 访问测试页

http://10.168.0.210:8080/
可见如下显示,

2.3 数据持久化

2.3.1 修改配置文件

vim /data/docker/yml/tomcat-stack.yml

加入如下配置,

version: '3.8'

services:

  tomcat:
    image: docker01.cmdschool.org:5000/tomcat:8.0.47
    volumes:
      - /data/docker/service/tomcat/conf/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml
      - /data/docker/service/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
      - /data/docker/service/tomcat/webapps:/usr/local/tomcat/webapps
    ports:
      - 8080:8080
    environment:
      TZ: Asia/Shanghai
    deploy:
      replicas: 1
      placement:
        constraints: [node.labels.tomcat == true]
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "5"

2.3.2 根据配置准备容器所需的文件或目录

mkdir -p /data/docker/service/tomcat /data/docker/service/tomcat/conf
docker cp `docker container ls | grep 'tomcat' | cut -d" " -f1 `:/usr/local/tomcat/conf/server.xml /data/docker/service/tomcat/conf/server.xml
docker cp `docker container ls | grep 'tomcat' | cut -d" " -f1 `:/usr/local/tomcat/conf/tomcat-users.xml /data/docker/service/tomcat/conf/tomcat-users.xml
docker cp `docker container ls | grep 'tomcat' | cut -d" " -f1 `:/usr/local/tomcat/webapps/ /data/docker/service/tomcat/

2.3.3 部署服务

docker stack deploy -c /data/docker/yml/tomcat-stack.yml tomcat

2.2.4 测试容器使用

In docker02

docker exec -it `docker container ls | grep 'tomcat' | cut -d" " -f1 ` bash

2.2.5 访问测试页

http://10.168.0.210:8080/
可见如下显示,

参阅文档
=====================

官方参阅
————
https://hub.docker.com/_/tomcat

文件兼容性参考
————–
https://docs.docker.com/compose/compose-file/

没有评论

发表回复

Docker
如何修复连接Docker容器虚机无响应?

1 前言 一个问题,一篇文章,一出故事。 笔者最近使用如下命令连接容器发现一直没有响应, docke …

Docker
如何打包Docker Nginx?

1 前言 一个问题,一篇文章,一出故事。 由于docker hub原版本的nginx镜像过于精简,于 …

Docker
如何打包Docker MAC-Telnet?

1 基础知识 一款可以使用MikroTik RouterOS MAC-Telnet协议连接Mikro …