componen部署

本文详细介绍了如何使用Docker部署Tomcat容器,包括下载镜像、配置网络映射、上传war文件,以及解决服务间的依赖问题,特别是通过wait-for-it.sh脚本确保服务启动顺序。
摘要由CSDN通过智能技术生成
第一步先部署tomcat

1.部署tomcat

  1.1.下载相关镜像tomcat8.5.20

可以自己搜素一下tomcat官网

  $ docker pull tomcat:8.5.20

  1.2 在/data目录下创建tomcat/webapps目录

  mkdir -p /data/tomcat/webapps

  注意:这里是准备将宿主机的/data/tomcat/webapps映射到容器的
        /usr/local/tomcat/webapps目录,那么在创建tomcat-0容器后,
    本应该存在与webapps目录下的原生目录(例如:manager等)都
    将不存在,因为映射的宿主机目录/data/tomcat/webapps为空,
    所以将不能采用tomcat原有部署方式,只能将war通过rz命令上传
    至宿主机的/data/tomcat/webapps目录


1.2.测试镜像    
  $ docker run \
          -p 8080:8080 \
          --name tomcat-0 \
          --privileged=true \
          --restart=always \
          -v /soft/tomcat/webapps:/usr/local/tomcat/webapps \
          -e TZ=Asia/Shanghai \
          -itd tomcat:8.5.20       
         
   注1:TZ=Asia/Shanghai用于设置时区为:亚洲/上海,可进入容器用如下命令进行查看
            echo `date "+%Y-%m-%d %H:%M:%S"`
   注2:以上容器的创建采用的是bridge默认网络

   注3:
   firewall-cmd --list-ports
   firewall-cmd --zone=public --add-port=8080/tcp --permanent
   firewall-cmd --reload
   firewall-cmd --zone=public --remove-port=8080/tcp --permanent
  
  3.上传hello.war至/data/tomcat/webapps目录

    rz hello.war

  4.测试crm项目
    http://xx.xx.xx.xx:8080/crm/sys/loginAction.action?username=zs&password=123

    注1:修改crm.war的数据库IP、数据库名及账号密码
    注2:测试报错,不在同一个网络所以连不上
         tomcat-0 -> bridge默认网络
     mysql    -> mynetwork自定义网络

2.部署web项目 

  向移植docker compose  
  详见/docker-compose/docker-compose-v1.yml文件


3.解决服务之间依赖问题
  场景说明:见images/01 Docker服务之间的依赖关系.png
  解决方案:docker官方推荐使用wait-for-it.sh脚本来解决问题,课件:资料/wait-for-it-master.zip已提供
                   什么是wait-for-it.sh?
                   wait-for-it.sh脚本用来访问指定的地址和端口,如果收不到响应就等待一段时间再去重试,直到收到响应后,再去做前面指定好的命令
                   command: ["./wait-for-it.sh", "mysql-master:3306", "--", "catalina.sh", "run"]
  注意事项:注意如果你使用wait-for-it.sh脚本,如果你的基础镜像不包含bash命令(比如alpine镜像)需要安装bash,
            不然没法执行wait-for-it.sh脚本导致容器启动失败。
            如果Dockerfile的基础镜像用的是alpine相关的基础镜像的话,记得添加如下指令安装bash:
            RUN apk update
            RUN apk upgrade
            RUN apk add --no-cache bash
             
            ##课程中下载的tomcat:8.5.20镜像sh/bash命令均支持
            docker exec -it tomcat-0 /bin/bash #不报错,能进入容器,即安装了bash命令
            docker exec -it tomcat-0 /bin/sh   #即安装了sh命令  

  3.1.制作自己mytomcat:8.5.20镜像
    
    1.上传相关文件至/docker-compse目录
      Dockerfile-mytomcat8.5.20
      wait-for-it.sh
    
    2.制作自定义镜像
      docker build -f Dockerfile-mytomcat8.5.20 -t mytomcat:8.5.20 .


  3.2.移植到docker-compose

    注:一定要修改docker-compose-v5.yml文件中的tomcat容器镜像指向刚刚创建的mytomcat:8.5.20
    注:一定要修改docker-compose-v5.yml文件中的tomcat容器镜像指向刚刚创建的mytomcat:8.5.20
    注:一定要修改docker-compose-v5.yml文件中的tomcat容器镜像指向刚刚创建的mytomcat:8.5.20

    使用自定义的mytomcat:8.5.20镜像构建tomcat容器。

    详见docker-compose/docker-compose-v5.yml

    docker-compose启动成功后,先停止tomcat容器,再停止mysql-master容器,再启动tomcat容器,查看tomcat容器日志,这时将提示wait等待中,最后在启动mysql-master后tomcat容器将正常启动。
  
    #容器启停命令

    docker -f docker-compose-v5.yml stop tomcat-0
    docker -f docker-compose-v5.yml stop mysql-master
    docker-compose -f docker-compose-v5.yml up -d tomcat-0
    docker-compose -f docker-compose-v5.yml up -d mysql-master
    #查看容器日志
    docker-compose -f docker-compose-v5.yml logs -f tomcat-0
    docker -f docker-compose-v5.yml logs -f 
 

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值