[Docker应用篇]docker - compose 部署 Tomcat

一.创建Tomcat文件夹

        首先在宿主机创建Tomcat文件夹,用于放置Tomcat的配置文件、日志文件、程序部署包等。

二.docker拉取镜像,启动容器

        直接用 docker-compose.yml 方式创建容器,无法启动 tomcat ,需要修改配置文件,所以先临时创建一个容器,然后把容器内需要的文件复制到宿主机,再用 docker-compose.yml 方式创建正式的容器。

#从镜像服务器拉取tomcat9镜像
docker pull tomcat:9.0

#创建并启动tomcat容器,-d表示后台启动,前面的38600代表主机的端口,后面的8080代表容器内的端口
docker run -d -p 38600:8080 --name jx_tomcat tomcat:9.0

注:此时访问localhost:38600可能会提示404,tomcat:9.0的镜像容器中,把tomcat首页的内容从有原来的webapps文件夹下放在webapps.dist,而webapps文件夹则是空的,导致访问404。文章下文给出解决的方法。

#查询当前所有的docker容器
docker ps -a 

#进入容器名为jx_tomcat的容器,查看tomcat文件夹内的内容
docker exec -it jx_tomcat /bin/bash

进入tomcat容器内部,有一个webapps文件夹和webapps.dist文件夹。

#访问tomcat首页404的办法就是需要把webapps删除,
rm -rf webapps

#再把webapps.dist重命名为webapps
mv webapps.dist webapps

三.复制容器内的tomcat文件到宿主机

把容器内的conf、logs、webapps文件夹复制到宿主机上

# 注:是在宿主机上执行这条命令。
docker cp 容器名:/usr/local/tomcat/conf/* /usr/local/dockercompose/tomcat/conf
docker cp 容器名:/usr/local/tomcat/logs/* /usr/local/dockercompose/tomcat/logs
docker cp 容器名:/usr/local/tomcat/webapps/* /usr/local/dockercompose/tomcat/webapps

#之后可以删除这个临时容器
docker rm -f jx_tomcat

四.编写docker-compose.yml文件,启动容器

#编写docker-compose.yml文件
services:
    jxTomcat:
        user: root
        restart: always
        container_name: jx_tomcat
        image: tomcat:9
        privileged: true
        environment:
          - TZ="Asia/Shanghai"
        ports:
          - "38600:38600" #宿主机开放端口:/usr/local/dockercompose/tomcat/conf/service.xml配置文件里面的端口
        volumes:
          - /usr/local/dockercompose/tomcat/webapps/:/usr/local/tomcat/webapps/
          - /usr/local/dockercompose/tomcat/conf:/usr/local/tomcat/conf
          - /usr/local/dockercompose/tomcat/logs:/usr/local/tomcat/logs
          - /etc/localtime:/etc/localtime

    
#启动容器
cd /usr/local/dockercompose
docker-compose -f docker-compose.yml up -d

#查看容器
docker ps
docker ps -a

#附一些指令
#docker-compose编排部署
docker-compose -f docker-compose.yml up -d

#docker-compose编排构建部署
docker-compose -f docker-compose.yml up -d --build 

#停止所有容器
docker stop $(docker ps -a -q)

#删除所有容器
docker rm $(docker ps -a -q)

#删除所有镜像
docker rmi -f $(docker images -qa)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值