动手制作Docker版的Tomcat

序:
前些时间把PHP都Docker了,今天研究了下Tomcat,直接在Docker跑上了。
本文将发表于facecto.com和上。
编撰于2018.12.20

在前人的轮子上

安装Docker,点击这里直接看,然后下载一个tomcat镜像。

docker pull tomcat:8-alpine

当前下载的是tomcat8.5,基于alpine的版本,这个版本优点是体积特别小。
然后准备一份server.xml文件,主要是增加了UTF-8,如果没有直接复制





  
  
  
  
  
  
  
  

  
  
    
    
  

  
  

    
    


    
    
    
    
    
    
    
    

    
    


    

    
    

      
      

      
      
        
        
      

      

        
        

        
        

      
    
  

新建一个文件夹 tomcat
将server.xml保存在tomcat子目录conf下,当前的目录树是

/tomcat
/tomcat/conf
/tomcat/conf/server.xml

新建Dockerfile文件

在/tomcat目录下新建Dockerfile

# 以刚刚下载的tomcat为基础镜像
FROM tomcat:8-alpine
# 这个是作者信息
MAINTAINER "seven" 
# 将原有的server.xml删除
RUN rm /usr/local/tomcat/conf/server.xml 
# 把conf下的server.xml复制到tomcat的配置目录
COPY  conf/server.xml /usr/local/tomcat/conf/

OK了,非常短的文件。
开始编译,运行如下命令:

docker build -t seven/tomcat8 .

等待几秒钟,UTF-8的Tomcat镜像就完工了。

测试

用idea 新建一个SpringBoot项目,记得选JDK8的。
新建一个helloController

package com.facecto.demo;
@RestController
@Slf4j
public class HelloController {
    @RequestMapping("/")
    public String index()
    {
        return "hello world";
    }
}

修改默认生成的DemoApplication为如下

package com.facecto.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer
{
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DemoApplication.class);
    }

}

Maven编译

mvn clean package -Dmaven.test.skip=true

将target下的demo-0.0.1-SNAPSHOT.war上传到数据文件夹,并解压。
可以直接unzip xxx -d /web的方式。

启动docker

docker run -d -v /web:/usr/local/tomcat/webapps/ROOT --name tomcat -p 8080:8080  seven/tomcat8

访问绑定的的域名或者

curl 127.0.0.1:8080

应该能看到熟悉的hello world
至此,Tomcat的初级Docker完成了。

当然如果觉得docker run 不过瘾,可以docker-cpmose,或者 docker swarm,或者K8S

你可能感兴趣的:(动手制作Docker版的Tomcat)