一、准备

准备机器:阿里云服务器centos系统

安装docker:

yum install docker

启动docker:

service docker start

启动后出现:

图片.png

二、在docker上安装tomcat

设计tomcat的dockerfile,采用dockerfile可以避免以下问题:
- 1、项目需要的tomcat版本可能不同,导致在生产环境中会出现异常。
- 2、项目需要的tomcat变量不一致。
- 3、项目需要的jdk可能不一致。
所以这里采用dockerfile的方式构建好统一的镜像,然后分发给项目组所有成员来进行。

准备工作:

创建tomcat7.0_jdk1.8文件夹,从jdk官网下载jdk1.8压缩包,

图片.png

下载tomcat,可以到官网下载最新的版本,也可以用下面的方式

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.78/bin/apache-tomcat-7.0.78.tar.gz

将以上两个下载到tomcat7.0_jdk1.8文件夹下:

图片.png

接下来进入比较重要的,那就是dockerfile的编写:
- 在以前java的开发中,对于一些操作我们会写些sh脚本文件来封装一些基本操作,而在docker中,采用的就是docerfile的方式让dcoker读取并分析、执行,这样的话重复构建、更新都变得更方便。在这里阐述下常用的docker参数:
- FROM命令。用法,FROM :。FROM命令告诉docker我们构建的镜像是以哪个(发行版)镜像为基础的。
- RUN命令。用法RUN 。RUN 后面接要执行的命令,比如,我们想在镜像中安装vim,只需在Dockfile中写入RUN yum install -y vim
- ENV命令。用法,ENV 。ENV命令主要用于设置容器运行时的环境变量
- ADD命令。用法,ADD 。ADD主要用于将宿主机中的文件添加到镜像中

阐述完dockerfile的基本参数后,给出我这里的dockerfile文件

#pull down centos image
FROM cen
MAINTAINER test@test.com
#copy jdk and tomcat into image
ADD ./apache-tomcat-7.0.78.tar.gz /root
ADD ./jdk1.8.0_131.tar.gz /root
#set environment variable
ENV JAVA_HOME /root/jdk1.8.0_131
ENV PATH $JAVA_HOME/bin:$PATH
#define entry point which will be run first when the container starts up
ENTRYPOINT /root/apache-tomcat-7.0.78/bin/startup.sh && tail -F /root/apache-tomcat-7.0.78/logs/catalina.out

接下来构建镜像:

docker build -t keven/centos:tomcat-centos --rm=true .

QQ图片20170621213735.png
-t选择置顶生产镜像的用户名,仓库名,和tag
–rm=true指定在生成镜像过程中删除中间产生的临时容器

查看新生成的镜像:

docker images keven/centos

图片.png

运行镜像:

docker run -d -p 8090:8080 3216

-p指定主机8090端口与容器8080端口进行绑定
-d指定容器运行后与当前console分离,后台运行
3216是镜像id的前四位

图片.png

通过 http://宿主机IP:8090,即可看见我们熟悉的tomcat首页了。这里当然了,需要服务器防火墙开放8090端口。

图片.png

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐