Docker部署Spring Boot项目 笔记
2018-08-01 21:42
776 查看
最近在看Docker,正好公司要做要一个小功能开发,所以决定拿来练一下手,以下是一些笔记。
创建一个Spring Boot 项目,网上很多这个自己查找一下。
- 弃用tomcat,选用undertow
最近看到了一个Web容器,在高负载的情况下号称可以胜过tomcat 和 jetty,那就是undertow。既然是练手,那就抛弃一下tomcat。所以我的项目用的是undertow。
在maven中的配置,不用默认的tomcat
[code]<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> /dependency>
引入undertow
[code]<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency>
- 打包
将编写好的项目通过maven 打包成jar包,最好在本地先测试一下单独的jar包能独立运行不。不然放到docker再调试有点麻烦。
这里比如我们通过maven 打包得到的文件问 spring-boot-docker-project-1.0-SNAPSHOT.jar
- 安装Docker
我这里使用的是CentOS7.2,安装教程这里不做介绍,网上也比较多。
- 制作dockerImage
- 安装完Docker后,自己新建一个文件夹用来存放Dockerfile和jar包,
- 这里示例目录为 /mnt/docker
- 将spring-boot-docker-project-1.0-SNAPSHOT.jar 拷贝至 /mnt/docker 文件夹。
- 编写Dockderfile ,cd 进入 /mnt/docker ,新建一个Dockerfile
- 输入命令touch Dockerfile,然后vi Dockerfile,输入如下内容
[code]FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD spring-boot-docker-project-1.0-SNAPSHOT.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="" ENTRYPOINT ["sh","-c","java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar"]
最后的ENTRYPOINT 在一行,不要换行,这里因为编辑器的问题换行了。编辑完成后保存Dockerfile。
-
build镜像,cd 进入 /mnt/docker 目录,然后执行命令
[code]docker build -t spring-boot-docker:1.0 .
-t 后面的是可以自定义的,用作镜像的名称。注意最后有个 . 这个很重要!!!! 这里可以配置docker加速,阿里云提供有服务。构建会快一些。
- 等待build完成,用 docker images 命令查看是否能看到镜像。
- 运行项目
输入命令
[code]docker run -p 9010:9010 --name chat-message -t 镜像ID
-p 表示宿主机的端口号这个端口号是对外访问的,后面的端口号是容器的端口号,即项目运行的端口号。注意不要弄错了。
--name 表示镜像的名称
-t 后面要跟上镜像的id
至此结束。
阅读更多相关文章推荐
- Spring boot项目在docker下的部署,发布
- 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行
- 将springBoot项目部署到docker入门实例
- springboot+dubbo+zookeeper项目部署笔记(摸索阶段,记一下笔记)
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
- Mac下部署springBoot项目到Docker中(demo)
- mac和linux下使用Docker,部署SpringBoot项目到docker
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
- Docker部署springboot项目
- spring-boot dubbo项目使用docker方式部署
- Docker部署springboot项目实例
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
- Docker---(5)Docker 部署SpringBoot web项目
- Docker部署SpringBoot项目
- 使用Docker部署Spring boot项目
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码
- docker 中部署一个springBoot项目
- docker 部署springboot、dubbo项目
- Docker 中部署 Spring boot 项目