docker tomcat上部署项目,以及时区问题的坑.

目录

一、安装docker  

二、拉取tomcat 镜像 

三、启动运行tomcat 镜像

1、设置自动启动容器 

2、进入容器 

3、时区问题

          四、部署项目


一、安装docker  

yum install docker 

 

1、设置docker 自动启动 

sudo systemctl enable docker

2、启动docker 

sudo systemctl start docker

 

二、拉取tomcat 镜像 

docker pull tomcat:8.5.40

  1.查看已拉取的镜像

docker images 

 2.删除已拉取的镜像

docker rmi xxx

三、启动运行tomcat 镜像

docker run -d --name tomcat8 -p 80:8080 tomcat:8.5.40 
参数解释
-d后台运行容器,并返回容器ID;
-i

以交互模式运行容器,通常与 -t 同时使用;

-a stdin 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
-p端口映射,格式为:主机(宿主)端口:容器端口
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb"为容器指定一个名称;
--dns 8.8.8.8指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com指定容器DNS搜索域名,默认和宿主一致
-h "mars"指定容器的hostname;
-e username="ritchie"设置环境变量
--env-file=[]:从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2"绑定容器到指定CPU运行
-m设置容器使用内存最大值
-net="bridge"指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
--link=[]添加链接到另一个容器
--expose=[]开放一个端口或一组端口

1、设置自动启动容器 

docker update --restart=always tomcat8

2、进入容器 

docker exec -it tomcat8 /bin/bash

    1.退出容器 

exit 

    2.查看所有容器 

docker ps -a 

   3.删除容器 

docker rm xxxx(容器名或容器id都可以)

3、时区问题

(1)执行date 命令查看时间,会发现容器中的时间少了8个小时,这是由于时区不一致.执行以下命令,已修改时间

cd /etc/

mv localtime localtime_bak

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

(2)更改完时区后,发现java 程序中的时间还是没有改变

       是因为docker中的java应用获取时间是从 timezone中获取,因此进入docker,修改timezone

echo "Asia/Shanghai" > /etc/timezone 

执行完这条语句,会发现docker 中java程序的时间也就一致了.

 

四、部署项目

把war包部署到tocmat 上,进入容器可知 webapps 在/usr/local/tomcat/webapps/

则在宿主机器上执行

docker cp xxx.war tomcat8:/usr/local/tomcat/webapps/

就成功部署了.

五、tomcat 日志

       我看了一下tomcat 日志,并没有生产catlina.out 这个日志文件,看了 dockerfile 文件后,得知这个tomcat 他是用 catlina.sh run 命令执行的. 

      在网上找了好多,目前还没有研究出怎么更改其他启动方式.目前我是先进入bin目录停止掉tomcat ,再以 sh startup.sh 执行,就有日志文件生成了.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值