封尘网

让学习成为一种习惯!

基于Java+Tomcat的Docker镜像

基于Java+Tomcat的Docker镜像

Docker镜像好不好并不完全是大小的问题,我喜欢自己动手制作自己的镜像这样感觉比较安全;更加适合自己。

系统环境:Centos6.5
制作工具:febootstrap

1、搭建一个内网源;在这个内网源主机上挂载上系统光盘:方便更新下载所有的包:
详情可参考上一篇文章:http://www.58jb.com/html/66.html

本次制作一个Java与Tomcat结合的镜像:

一、建立一个目录,命令为Tomcat7

mkdir Tomcat7

切换到上面的Tomcat7目录下,把jdk-7u79-linux-x64.gz和apache-tomcat-7.0.68.tar.gz解压到当前目录:

目录下的文件有:

[root@centos tomcat7]# ls
apache-tomcat-7.0.68  Dockerfile  jdk1.7.0_79  start_tomcat.sh

Dockerfile文件内容:

FROM centos6.5
MAINTAINER swper <hz328@qq.com>
#Make java and tomcat install directory
RUN mkdir -p /usr/local/java && mkdir -p /data/tomcat
#Copy jre and tomcat into image
ADD jdk1.7.0_79 /usr/local/java
ADD apache-tomcat-7.0.68 /data/tomcat
ADD start_tomcat.sh start_tomcat.sh
#Expose http port
EXPOSE 8080

start_tomcat.sh 文件内容:

#!/bin/bash
#Date: 2016/08/24
#Desc: swper
#Start tomcat with docker containerstart.
echo "Start Tomcat ..."
# Export java path
export PATH=$PATH:/usr/local/java/bin
export TOMCAT_HOME=/data/tomcat
# Start tomcat
bash $TOMCAT_HOME/bin/catalina.sh run

修改apache-tomcat-7.0.68/bin/catalina.sh文件内容:区别在于-Denv=dev【由于多套环境,所以这个要修改】,和内存配置大小;

JAVA_OPTS="-server -XX:PermSize=1024m -XX:MaxPermSize=2048m -Denv=dev -Dfile.encoding=UTF-8"

删除Tomcat目录下的webapps下所有文件;可节省镜像打包后的大小;

rm -rf rm -rf apache-tomcat-7.0.68/webapps/*

Build镜像:【名字可随意,可用tag重新命名】

docker build -t tomcat7:dev .

查看镜像:

[root@centos tomcat7]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
tomcat709           latest              2b35c9249340        5 hours ago         590.5 MB
tomcat7             dev                 2b35c9249340        5 hours ago         590.5 MB
tomcat              v14                 d15e965a97e5        5 days ago          590.5 MB
tomcat704           latest              767036a52e4c        13 days ago         590.5 MB
centos6.5           latest              e0cf85ebb835        2 weeks ago         276 MB

使用方法:

在宿主机上创建相应目录:

mkdir -p /data/{logs,webapps}

webapps:存放Java项目
Logs: 存放Tomcat的日志

启动容器:

docker run -it -d --name=w1 -p 8081:8080 -v /data/webapps/h5-server:/data/tomcat/webapps -v /data/logs:/data/tomcat/logs tomcat7:dev /bin/bash start_tomcat.sh

启动后,访问地址:192.168.18.51:8081/h5-server即可访问到项目,日志就存储到/data/logs里了。不过日志有点延迟一秒左右;

可通过Nginx做反代直接跳到容器里:

如果出现容器内的时间不致可以再添加挂载一个文件到容器里:

在宿主机上定时同步互联网上的时间,这样再以只读方式挂载到容器即可解决;

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

提醒:本文最后更新于 1188 天前,文中所描述的信息可能已发生改变,请谨慎使用。