Docker-第二个java应用

1.常规部署


输入mvn package即可打包成jar/war(可以在target中看到)

注意:如果要在独立的tomcat中运行的话这样还不够,还需要以下步骤:

              1.1保证打包的是war包

              1.2在pom.xml中添加下面依赖,排除springboot内置的tomcat

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

               1.3在启动类中继承SpringBootServletIntializer,并重写configure方法

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {

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

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

2.  云部署-基于Docker的部署

Dockerfile中主要有如下指令

2.1. FROM 指定了当前镜像继承的基镜像。编译当前镜像时会自动下载基镜像

2.2. MAINTAINER 指定了当前镜像的作者

2.3.RUN 可以在当前镜像上执行Linux命令并形成一个新的层。RUN是编译时(build)的动作

2.4.CMD指明了启动镜像容器时的行为,一个Dockerfile里只能有一个CMD指令。CMD指令里设定的命令可以在运行镜像时使用参数覆盖。CMD是运行时(run)动作

2.5.ENV 用来设置环境变量

2.6.ADD是从当前的工作目录复制文件到镜像的目录中去

2.7.ENTRYPOINT 可以让容器像一个可执行一样执行,这样镜像运行时可以像软件一样接受参数执行,它是运行时(run) 的动作

2.8.EXPOSE指明了镜像运行时的容器必需监听的指定的端口


启动java应用,首先是打成jar/war,然后将jar/war和Dockerfile文件放在同一目录下面

Dockerfile的内容如下:

FROM hub.c.163.com/library/tomcat:8.0
MAINTAINER jin

COPY demo-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps


3. 编译镜像

在上面的目录下执行

 docker build -t wisely/appdocker .(注意最后有个.,代表当前目录下)

注意:wisely/appdocker是镜像的名称,设置wisely作为前缀,这也是Docker镜像的一种命名习惯


4. 查看镜像是否创建成功和运行镜像

docker images 

运行镜像:

docker run -d --name app -p 8080:8080 wisely/appdocker

测试连接:

当前的docker虚拟机的ip 是192.168.99.100,所以浏览器访问192.16.31.171:8080+项目名+方法mapping 即可

这里我们简单创建一个controller类,并写了个hello world测试:

@RestController
public class DemoController {
    @RequestMapping(value="/index")
    String home() {
        return "Hello World!";
    }


}
注意@RestController和@Controller的区别,这里有个坑!!!




猜你喜欢

转载自blog.csdn.net/qq_35394891/article/details/80259799