Docker安装Tomcat镜像并部署web项目简述

2023-05-16

一、安装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
MAINTAINER *********@163.com 
RUN rm -rf /usr/local/tomcat/webapps/*
COPY button.war   /usr/local/tomcat/webapps
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

说明:

from tomcat    #你的 tomcat的镜像
MAINTAINER *********@163.com    #作者
COPY button.war   /usr/local/tomcat/webapps  #放置到tomcat的webapps目录下

3、生成新的镜像

docker build -t button:v1 .
# 说明:
# war包和Dockerfile放置在同一目录下
# -t 后为应用名称:版本号
# 注意,最后有一个"."

这里写图片描述
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

到此即可解决该问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker安装Tomcat镜像并部署web项目简述 的相关文章

  • 具有 CXF 和 Kerberos 身份验证的 Restful 服务

    尝试使用 Kerberos 身份验证保护现有 CXF JAX RS 服务时遇到困难 我浏览了似乎是参考文档的内容 http cxf apache org docs jaxrs kerberos html http cxf apache or
  • Docker:保留命令历史记录

    Every time I build a Docker container the command history CTRL R in Ubuntu is lost Is there a way to prevent it from res
  • Docker pull:不允许操作

    我在拉取一些 docker 映像 但不是全部 时收到此错误 failed to register layer Error processing tar file exit status 1 operation not permitted 例
  • 如何对 Xcode 进行 docker 化

    出于 CI 的目的 我需要建立一个能够构建 iOS 应用程序的构建从属集群 目前 我依赖于一台 MacMini 目标是在将来部署更多台 并且我想在其上虚拟化多个从属设备 其中一些虚拟从站将构建 iOS 应用程序 其他虚拟从站将是用于各种目的
  • 预创建检查出错:“此计算机未启用 VT-X/AMD-v。必须在 BIOS 中启用它”,即使已启用

    运行docker工具箱 v19 03 1 https github com docker toolbox releases tag v19 03 1 从 Windows 10 家庭版产生以下错误消息 Running pre create c
  • Maven 项目无法在 Tomcat 7 上运行

    我正在尝试在 Tomcat 7 上运行 Maven 项目 但它似乎不起作用 当我从命令提示符输入时mvn clean tomcat7 run 我收到此错误 SEVERE A child container failed during sta
  • Tomcat 热部署到托管多个应用程序的实例

    我的问题是关于部署到托管多个应用程序并托管 Struts Spring 和 Hibernate 的应用程序上下文的 Tomcat 服务器实例 我想在不重新启动 Tomcat 服务器的情况下将更改部署到一个应用程序 举个例子 在我们公司很多时
  • favicon.ico 在 Tomcat 7.0 的 spring mvc 3.2.2 中不显示?

    我是 spring mvc 新手 我的 favicon ico 没有显示在使用 spring 3 2 2 使用 tomcat 7 0 的浏览器选项卡中 我尝试查看相关的谷歌搜索 但仍然无法让它显示在浏览器选项卡中 FF Chrome IE
  • 在 Ruby 中创建带有静态页面的博客的最佳方法

    我刚刚访问了静态网站生成 http www ruby toolbox com categories static website generation html on 红宝石工具箱 http www ruby toolbox com 我不知
  • PSQLException 没有被捕获

    我正在使用 Tomcat 6 和 Postgresql 8 4 我的代码如下所示 try Prepared statement inserting something catch final PSQLException e LOG log
  • 如何在 Docker Desktop 上创建新的 Kubernetes 集群?

    我似乎不知道如何在我的计算机上运行的 Docker Desktop 实例上创建全新的 Kubernetes 集群 无论是 Mac 还是 PC 都没有关系 我知道如何设置当前集群上下文 但我只有一个集群 因此无法设置其他任何内容 What s
  • 在 Apache Tomcat 上运行 JSF 项目

    如何在Tomcat上午餐JSP项目 我复制WebContent文件夹到webappApache 的文件夹 但它找不到我的 jsp 页面 但如果我将 jsp 更改为 jsf index jsf 就可以正常工作 我怎么解决这个问题 web xm
  • 在 Docker 容器中看不到 Django

    我想在一个简单的 Docker 容器中运行 Django 首先 我使用 Docker 文件构建了容器 里面没有什么特别的 只有 FROM RUN 和 COPY 命令 然后我用命令运行我的容器 docker run tid p 8000 80
  • 无法将 docker 映像推送到本地 OpenShift Origin 注册表

    目标是能够在我的笔记本电脑上获取 Docker 映像并将其推送到 OpenShift Origin 映像注册表 由oc cluster up 进行本地开发 目前尚不清楚我是否做错了什么 或者 Docker 或 OpenShift Origi
  • Docker Hub API v2 令牌身份验证问题

    目前 我正在开发一个非常轻量级版本的 Docker 容器编排器 并且我必须能够从公共 Docker Hub 注册表获取图像摘要 我想使用 Docker Registry API v2 来实现此目的 我正在尝试使用以下 API 调用获取授权令
  • 我可以更改 Windows Docker 容器中的日期和时间吗?

    我正在尝试测试一个在特定时间段内导出文件的软件 我想到使用 docker 容器来提供所需的时间而不是使用系统时间 问题是我缺乏更改容器时间的权限 并出现以下错误消息 PS C usr src app gt Set Date Date Get
  • Docker Compose 无法连接到数据库

    我使用 Nestjs 作为后端 并使用 typeorm 作为 ORM 我尝试在 docker compose 文件中定义我的数据库和应用程序 如果我将数据库作为容器运行 并从本地计算机运行应用程序 那么它运行良好 我的程序连接并创建表等 但
  • 如何在“Docker for Windows”中启用docker远程API

    I have 适用于 Windows 的 Docker 桌面1 12 1 stable 内部版本 7135 安装在我的 Windows 10 计算机上 我想使用以下方式访问 docker远程API https docs docker com
  • 在同一个 nginx 服务器块上公开多个 api uri

    Goal 我的目标是在同一个 nginx 服务器上设置多个后端 api 容器 http localhost 80 api account gt 调用 http account service 9000 http localhost 80 a
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat

随机推荐

  • 局域网中连接mysql数据库

    解决局域网中无法连接mysql数据库问题 在局域网中如果多人协作开发 xff0c 肯定会连接同一数据库 mysql 服务 xff0c 可是在连接时总是遇到问题 现提供解决方案如下 xff1a 只需要修改mysql配置文件 xff1a 在li
  • GPS在ROS中的测试和使用

    原链接 通过GPS机器人可以获取定位信息 ROS中也提供了GPS的相关驱动包 xff0c 可以方便的使用GPS的定位信息 下面以蓝鲸GPS模块为例演示如何在ROS中使用GPS传感器 其他的可以通过串口指令发布nmea语句的GPS模块都是通用
  • spring security oauth2 sso退出

    一 客户端退出调用认证中心 logout服务 这种方式是客户端先退出 xff0c 然后再退出认证中心 方法1 xff1a 集成WebSecurityConfigurerAdapter xff0c 重写方法如下 xff08 推荐这种方式 xf
  • 【智能家居】Home Assistant入门安装并内网穿透实现远程安全控制

    文章目录 前言1 安装Home Assistant2 配置Home Assistant3 安装cpolar内网穿透3 1 windows系统3 2 Linux系统3 3 macOS系统 4 映射Home Assistant端口5 公网访问H
  • Windows搭建Maven环境并在Eclipse中进行配置

    Maven环境 下载maven并配置 http maven apache org download cgi 下载完成如下 xff1a 接下来开始配置maven环境 xff1a 计算机 gt 右键 属性 gt 高级系统设置 gt 环境变量 g
  • 初见Ubuntu

    Ubuntu入门与常用娱乐软件安装 设置语言环境设置服务器镜像源安装搜狗输入法安装网易云音乐 一 设置语言环境 在系统右上角找到小齿轮图标 xff0c 点击选择 System Settings 选项 在打开的设置界面点击 Language
  • Ubuntu终端命令详述

    一 基本终端命令 1 调整终端窗口的字体大小 34 ctrl 43 shift 43 61 34 放大终端窗口的字体 34 ctrl 43 34 缩小终端窗口的字体 2 Linux命令的基本使用 序号命令对应英文作用01lslist查看当前
  • Ubuntu安装并连接Mysql

    安装配置MySql sudo apt install mysql server XX 提示 xff1a 当输入mysql时便可连续按 tab 键两次便可得到提示信息 xff0c 根据信息选择安装 安装过程中会提示输入mysql服务密码 xf
  • vi的使用与基本命令

    vi的使用 一 初识vi 1 什么是vi vi xff0c 即终端中一款编辑器 2 vi的应用场景 当我们要通过远程连接到服务器时 xff0c 此时没有图形界面 xff0c 当我们要对服务器上的文件进行编辑时 xff0c 便可以使用vi进行
  • Ubuntu下安装并配置Redmine

    Redmine安装与使用 Redmine是什么 xff1f Redmine是用Ruby开发的基于web的项目管理软件 xff0c 是用ROR框架开发的一套跨平台项目管理系统 xff0c 支持多种数据库 xff0c 多项独特功能 这种 Web
  • Ubuntu下安装ReviewBoard

    ReviewBoard安装与使用 ReviewBoard是什么 xff1f ReviewBoard是个开源的 可扩展的 友好的基于Web的代码评审工具 xff0c 是用Python框架Django开发的 ReviewBoard是通过Pyth
  • Ubuntu安装redis,Docker下安装redis以及redis基本配置说明

    一 什么是redis redis是一个key value存储系统 和Memcached类似 xff0c 它支持的数据类型相对更多 xff0c 包括string 字符串 list 链表 set 集合 zset sorted set 有序集合
  • Ubuntu安装memcache

    一 什么是memcache memcache是一个高性能的分布式的内存对象缓存系统 xff0c 通过在内存里维护一个统一的巨大的hash表 xff0c 它能够用来存储各种格式的数据 xff0c 包括图像 视频 文件以及数据库检索的结果等 简
  • Ubuntu安装Apache+Svn+Submin

    安装之前建议先更新 sudo apt update sudo apt upgrade 一 安装配置Apache 1 安装apache sudo apt install apache2 2 开启apache2模块 a2enmod rewrit
  • ROS坐标系统,常见的坐标系和其含义

    原链接 运行测试平台 小强ROS机器人 常见的坐标系 在使用ROS进行定位导航等操作时 xff0c 我们经常会遇到各种坐标系 每种坐标系都有明确的含义 理论上坐标系的名称可以是随意的 xff0c 但是为了方便不同的软件间共享坐标信息 xff
  • ReviewBoard+SVN配置强制code review

    本文需要在svn与reviewboard安装成功之后开始进行配置 xff0c 详情参考如下两篇文章根据实际情况操作 xff1a Ubuntu安装Apache 43 Svn 43 Submin https blog csdn net qq 2
  • Ubuntu安装配置Maven私服Nexus

    1 简介 Maven是什么 xff1f Maven是一个采用纯Java编写的开源项目管理工具 Maven采用了一种被称之为Project Object Model POM 的概念来管理项目 xff0c 所有的项目配置信息都被定义在一个叫做P
  • Ubuntu安装配置Docker

    一 Docker简介 Docker 是一个开源的应用容器引擎 xff0c 可以轻松的为任何应用创建一个轻量级的 可移植的 自给自足的容器 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中 xff0c 然后发布到任何流行的
  • Ubuntu安装ftp实现文件上传

    ftp服务安装与配置 sudo apt install vsftpd 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img UlscHRVo 1598855886357 https img blog csdn net
  • Docker安装Tomcat镜像并部署web项目简述

    一 安装Tomcat 1 查找Docker Hub上的tomcat镜像 docker search tomcat 2 拉取官方的镜像 docker pull tomcat 等待下载完毕 xff0c 需要一些时间 3 查看docker所有的镜