• docker入门学习(三)使用docker中的Tomcat镜像部署web项目


    前面已经对安装Tomcat进行了详解:docker入门学习(一)   

    直接上代码

    //启动一个Tomcat 命名为mytomcat
    [root@localhost ~]# docker run -d  --name mytomcat -p 9999:8080 tomcat
    cecb37db8134f1b1fe6d13c43b0b22d1832a9937b9d2bbfa9958eb180bd81eb6
    //上传war包到linux主机   我上传到home文件夹下
    [root@localhost ~]# cd /home
    [root@localhost home]# ls
    qrcode.war
    [root@localhost ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
    cecb37db8134        tomcat              "catalina.sh run"        9 minutes ago       Up 9 minutes        0.0.0.0:9999->8080/tcp              mytomcat
    1226f307b5ba        tomcat              "catalina.sh run"        About an hour ago   Up 28 minutes       0.0.0.0:8888->8080/tcp              agitated_leavitt
    ec9d0d788590        mysql               "docker-entrypoint.s…"   16 hours ago        Up 16 hours         0.0.0.0:3306->3306/tcp, 33060/tcp   mysql02
    //进入一个容器 sudo docker exec -it 容器id /bin/bash 
    [root@localhost ~]# sudo docker exec -it cecb37db8134 /bin/bash
    root@cecb37db8134:/usr/local/tomcat# ls
    BUILDING.txt     LICENSE  README.md      RUNNING.txt  conf     lib   native-jni-lib  webapps
    CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          include  logs  temp            work
    root@cecb37db8134:/usr/local/tomcat# 
    //Ctrl+D 退出容器
    root@cecb37db8134:/usr/local/tomcat# exit
    //复制war到Tomcat的webapps目录下
    [root@localhost ~]# docker cp /home/qrcode.war cecb37db8134:/usr/local/tomcat/webapps
    //重新进入容器 qrcode.war已经在webapps目录下了
    [root@localhost ~]# sudo docker exec -it cecb37db8134 /bin/bash
    root@cecb37db8134:/usr/local/tomcat# ls
    BUILDING.txt     LICENSE  README.md      RUNNING.txt  conf     lib   native-jni-lib  webapps
    CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          include  logs  temp            work
    root@cecb37db8134:/usr/local/tomcat# ls ./webapps/
    ROOT  docs  examples  host-manager  manager  qrcode  qrcode.war
    root@cecb37db8134:/usr/local/tomcat# 

    常用命令:

    //通过镜像产生一个容器
    docker run -p port1:port2 containerName:tag
    //启动一个已有的容器
    docker start containerID/containerName
    //停止一个容器
    docker stop containerID/containerName
    //重启一个容器
    docker restart containerID/containerName
    //与一个已经启动的容器进行交互式操作
    docker exec -i -t containnerID/containerName /bin/bash
    //复制文件到容器中
    docker cp src_path containerId:dest_path

    访问结果:成功

     常见问题:

      如果访问项目启动页成功,但无法登录   可以使用  docker logs  容器id   命令查看日志

      日志如果是关于mysql、jdbc相关的问题    原因可能是你安装了8以上版本的mysql,而项目的驱动包版本过低

      方法一、下载低版本的mysql

    //下载你原来项目使用的mysql版本
    [root@localhost ~]# docker pull mysql:5.7.22
    //重新启动mysql
    [root@localhost ~]# docker run -p 3306:3306 --name mysql03 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.22
    fbd6e687b1a27202ef6408462317d4cf149646eaef3e801da04e81d7a187b271

      方法二、更新mysql驱动包

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.13</version>
    </dependency>

        

        

  • 相关阅读:
    C#使用WINDOW
    赵四小姐从十六岁开始跟张学良。跟一年,属奸情;跟三年,算偷情;跟六十年,便成为千古爱情!
    Microsoft Visual Studio 2010(VS2010)正式版 CDKEY / SN:
    C#中byte[]与string的转换
    sqlserver waitfor time '10:00' waitfor delay '1:00' 时间延时 和 间隔
    免费下载 精英讲解
    在决定使用ClickOnce发布你的软件前,应该知道的一些事情
    Windows7下注册OCX的注意事项
    用命令行以最快速简单的方式搭建MySQL数据库
    设计模式探索系列之Bridge模式
  • 原文地址:https://www.cnblogs.com/zhou-pan/p/10455214.html
Copyright © 2020-2023  润新知