zoukankan      html  css  js  c++  java
  • Docker安装Tomcat镜像并部署web项目

    一、安装Tomcat
    1、查找Docker Hub上的tomcat镜像

    docker search tomcat

    2、拉取官方的镜像

    docker pull tomcat

    等待下载完毕,需要一些时间。

    3、查看docker所有的镜像

    docker images

    4、启动tomcat镜像
    注:前者是外围访问端口:后者是容器内部端口

    docker run -d -p 8080:8080 tomcat

    注:前者是外围访问端口:后者是容器内部端口
    如下命令可后台启动tomcat
    -d: 后台运行容器,并返回容器ID;
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    docker run –d -p 8080:8080 tomcat

    如下则启动成功:

    5、查看正在运行的容器

    docker ps

    输入ip和端口即可查看tomcat主页:

    二、向Tomcat部署自己的web项目
    1、上传war包


    2、创建并编辑”Dockerfile”,内容如下:

    from tomcat #你的 tomcat的镜像
    MAINTAINER *********@163.com #作者
    RUN rm -rf /usr/local/tomcat/webapps/*
    COPY button.war /usr/local/tomcat/webapps #放置到tomcat的webapps目录下
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

    3、生成新的镜像

    docker build -t button:v1 .



    4、启动新的镜像

    docker run -d -p 8080:8080 button:v1

    5、查看已启动镜像
    可以加上参数-itd后台启动tomcat,用以下方式查看已启动的镜像

    docker ps

    6、查看tomcat中的项目
    可以使用如下命令进入tomcat镜像:

    docker exec -it ******* /bin/bash #******是容器id(CONTAINER_ID)

    当我们进入镜像后,想对某些参数进行修改时,一般需要安装文本编辑器,以vim为例:
    由于下载地址是海外地址,下载速度非常慢而且可能出现中断,所以做如下配置:

    mv /etc/apt/sources.list /etc/apt/sources.list.bak
    echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list
    echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
    echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
    echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list

    然后更新
    apt update
    现在就可以安装我们需要的软件了,例如vim
    apt install vim

    7、输入ip和端口进行查看

    8、可以查看指定容器的log

    docker logs -f 容器id


    9、部署web项目后也许会出现docker容器与宿主、docker 容器与tomcat 应用打印日志时间和我们当前时间相差8个小时,可以添加如下配置:

    ①启动容器时,将系统时间挂载到容器内,可以解决docker容器与宿主时间不一致问题,如下所示:
    添加参数

    -v /etc/localtime:/etc/localtime:ro

    完整命令如下示例:

    sudo docker run -d --name button-api -p 8080:8080 -v /etc/localtime:/etc/localtime:ro button-api:v1

    ②docker 容器与tomcat 应用打印日志时间不一致
    启动tomcat容器后进入tomcat的”bin”目录,修改catalina.sh文件
    在注释结束的第一行添加如下内容:

    JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"

    如下图所示:


    修改保存后重启docker容器就可以了。
    重启方法:
    “docker ps”查询容器id,使用如下命令重启:

    docker restart 容器id

    到此即可解决该问题。

  • 相关阅读:
    LeetCode 24. Swap Nodes in Pairs (两两交换链表中的节点)
    LeetCode 1041. Robot Bounded In Circle (困于环中的机器人)
    LeetCode 1037. Valid Boomerang (有效的回旋镖)
    LeetCode 1108. Defanging an IP Address (IP 地址无效化)
    LeetCode 704. Binary Search (二分查找)
    LeetCode 744. Find Smallest Letter Greater Than Target (寻找比目标字母大的最小字母)
    LeetCode 852. Peak Index in a Mountain Array (山脉数组的峰顶索引)
    LeetCode 817. Linked List Components (链表组件)
    LeetCode 1019. Next Greater Node In Linked List (链表中的下一个更大节点)
    29. Divide Two Integers
  • 原文地址:https://www.cnblogs.com/jxldjsn/p/10540549.html
Copyright © 2011-2022 走看看