docker-compose安装tomcat

docker-compose部署tomcat的需要注意的是:

直接用 docker-compose.yml 方式创建容器,无法启动 tomcat ,因为缺少启动文件,所以先临时创建一个容器,然后把容器内需要的文件复制到宿主机,再用 docker-compose.yml 方式进行部署

1 先在主机上创建工作文件夹,为了放置 Tomcat 的配置文件等。创建文件夹的方法,自己搞定

目录结构:

bin conf docker-compose.yml logs webapps


docker-compose安装tomcat


2 先随便启动一个 tomcat 容器(用第一种方法,docker run),主要是为了获取 tomcat 容器内部的配置文件

#启动一个容器,指定版本8.5.78

docker run --name my_tomcat -it -d -p 8080:8080 tomcat:8.5.7

# 查看 容器 获取容器ID

docker ps -a

3 进入tomcat的容器,拷贝容器文件到主机

docker exec -it tomcat bash 或者 docker exec -it tomcat容器id bash

容器内 tomcat 文件夹下的 conf bin logs webapps.dst 里面的内容都拷贝到上面宿主机上创建的对应文件夹内。容器的文件拷贝到宿主机的命令如下:

#在主机上执行

docker cp 容器id长格式:/usr/local/tomcat/webapps.dst/ /usr/local/tomcat/webapps

查看容器id长格式的方法:

docker inspect -f '{{.ID}}' tomcat
如:docker cp 9f4bfb6e8ffd850b7e56055a46eaf7ffaf2609c5ae1a26502837778598b972b1:/usr/local/tomcat/webapps/ /home/cater/spring-java/tomcat85/webapps

注意:路径不能包含*,否则找不到path

临时容器的版本与docker-compose创建的tomcat的版本一定要一致,否则会出现各种异常

4 删除tomcat临时容器

文件拷贝完成之后,临时tomcat容器就可以删除了

docker rm -f tomcat

5 使用docker-compose部署即可

docker-compose.xml

version: '3'
services:
  tomcat:
 #   restart: always
 #   build: /home/spring-java/tomcat85
    build:
      context: ./
      dockerfile: Dockerfile
      #image: tomcat:8.5.59-jdk8
    container_name: tomcat8
    logging:
      #driver: "json-file"
      driver: "gelf"
      options:
        #max-size: "50m"
        #max-file: "8"
        gelf-address: "udp://172.16.11.15:12201"
        tag: "log-tomcat"
    environment:
      TZ: Asia/Shanghai
      JAVA_OPTS: -Xms1024m -Xmx4096m  -XX:+UnlockCommercialFeatures -XX:+FlightRecorder
    volumes:
      - ./conf:/usr/local/tomcat/conf
      - ./logs:/usr/local/tomcat/logs
      - ./webapps:/usr/local/tomcat/webapps
   #   - ./lib:/usr/local/tomcat/lib
      - ./webapps:/usr/local/tomcat/webapps
      - ./application/logs:/application/logs

    ports:
      - 8088:8088
    expose:
      - 8088

Dockerfile的内容:

FROM tomcat:8.5.78-jdk8
#将lib里面的jar包都拷贝到 /usr/local/tomcat/lib下面
COPY lib /usr/local/tomcat/lib

注意:dockerfile的内容必须FROM开头

docker-compose up -d

如果tomcat容器需要依赖jar怎么办呢?

只需将主机的jar拷贝到容器即可,如:

docker cp /home/cater/spring-java/tomcat85/lib

9f4bfb6e8ffd3237e56055a46eaf7ffaf2609c5ae1a26502837778598b972b1:/usr/local/tomcat/lib/

注意:

webapps 中的是空的,

将目录下webapps.dist里文件复制到webapps

dockerfile中COPY 与ADD的区别:

如 COPY lib /usr/local/tomcat/lib

ADD lib /usr/local/tomcat/lib

COPY 文件夹时,拷贝的是文件夹里面的内容,文件夹lib本身不拷贝

ADD 文件夹时,文件夹lib本身会复制过去

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章