文档章节

docker 部署springboot、dubbo项目

trntaken
 trntaken
发布于 2017/09/03 16:51
字数 1014
阅读 78
收藏 2

创建项目

1.创建一个springboot项目 pas。随便写一个Controller

	@RequestMapping(value = "/oauth")
	public void authentication(HttpServletRequest request,
			HttpServletResponse response) {

     。。。。。
 }

2.打包部署pas。部署到linux 。目录结构如下:

[root@iZotm71x017bylZ pas]# ll
total 80
drwxr-xr-x 2 root root  4096 Sep  3 16:41 config
drwxr-xr-x 2 root root  4096 Sep  2 18:59 lib
-rw-r--r-- 1 root root 67926 Aug 28 10:59 pas-1.0.0.jar

3.运行项目,看到pas 项目已经正常启动。

java -jar pas-1.0.0.jar  &
[1] 10390
[root@scss-tcsdev-tomcat1 pas]# 2017-09-03 17:15:22.066 [main] INFO  com.wtsd.pas.PasApplication - Starting PasApplication v1.0.0 on localhost with PID 10390 (/scss/pas/pas-1.0.0.jar started by root in /scss/pas)

 

4.对上述pas 整个项目进行打成tar.gz压缩包,为创建pas 镜像做准备。config目录下application.properties 和 logback.xml不需要打包进去。在下面文中,我们会把配置文件放在卷目录config下。

 [root@scss-tcsdev-tomcat1 pas]# tar -zcvf pas.tar.gz pas/

创建镜像

1.首先创建并进入/opt/pas 文件夹。创建Dockerfile 文件:

# This is  my first web project with Docker.
FROM openjdk:8-jdk-alpine
#将项目包复制到镜像/usr/local目录下
ADD pas.tar.gz /usr/local/
ENV JAVA_OPTS=""
#暴露84端口
EXPOSE 84
#切换工作目录
WORKDIR  /usr/local/pas/
ENTRYPOINT ["sh","-c","java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar  pas-1.0.0.jar"]

2. 将pas.tar.gz 放入该目录下,创建券目录 logs 和config ,最终结构如下:

[root@iZotm71x017bylZ pas]# ll
total 24244
-rw-r--r-- 1 root root      273 Sep  3 17:43 Dockerfile
drwxr-xr-x 2 root root     4096 Sep  3 15:57 config
drwxr-xr-x 2 root root     4096 Sep  3 18:09 logs
-rw-r--r-- 1 root root 24784743 Sep  3 16:41 pas.tar.gz

 注意: config 和logs两个目录会挂载到容器config和logs目录下。容器运行从config目录加载application.properties 和 logback.xml 配置,同时容器会将日志文件会输出到该logs目录下。

3. docker build -t chenyaochn/pas .  如下显示:

[root@iZotm71x017bylZ pas]# docker build -t chenyaochn/pas .
Sending build context to Docker daemon  52.75MB
Step 1/7 : FROM openjdk:8-jdk-alpine
 ---> 478bf389b75b
Step 2/7 : ADD pas.tar.gz /usr/local/
 ---> fc280ddd785a
Removing intermediate container 2075aabffedc
Step 3/7 : ENV JAVA_OPTS ""
 ---> Running in 681af64dfa9b
 ---> bad8ae41f58c
Removing intermediate container 681af64dfa9b
Step 4/7 : VOLUME /opt/pas/logs
 ---> Running in bcdd0fac9a14
 ---> a424c0f6c7c2
Removing intermediate container bcdd0fac9a14
Step 5/7 : EXPOSE 84
 ---> Running in dc7f6eff63c1
 ---> f21fd6919fd5
Removing intermediate container dc7f6eff63c1
Step 6/7 : WORKDIR /usr/local/pas/
 ---> 121ac70d7e82
Removing intermediate container 84f20985d008
Step 7/7 : ENTRYPOINT sh -c java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar  pas-1.0.0.jar
 ---> Running in 6212828c9d53
 ---> 3efcebec6a4d
Removing intermediate container 6212828c9d53
Successfully built 3efcebec6a4d
Successfully tagged chenyaochn/pas:latest

4.docker images查看镜像 ,已经创建成功:

[root@iZotm71x017bylZ pas]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
chenyaochn/pas      latest              3efcebec6a4d        45 minutes ago      129MB

 

部署

部署zookeeper

1.从docker hub上下载最新zookeeper镜像。

[root@iZotm71x017bylZ ~]# docker pull zookeeper 
Using default tag: latest

2.运行

[root@iZotm71x017bylZ ~]# docker run  -d -p 2181:2181 --name zookeeper zookeeper 
2defe46356fe8f28126350360f75c06cced32eb5154a391027e574b88bf3245a

可以将,zookeeper conf/目录挂载到宿主服务器,容器和宿主服务器共享zoo.cfg配置文件,方便对zookeeper配置的修改。

3. 查看 运行结果:

[root@iZotm71x017bylZ ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                                        NAMES
2defe46356fe        zookeeper           "/docker-entrypoin..."   About a minute ago   Up About a minute   2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp   zookeeper

 

部署springboot项目

1.docker run -p 84:84 -v /opt/pas/config/:/usr/local/pas/config  -v  /opt/pas/logs/:/usr/local/pas/logs/ --name pas chenyaochn/pas  运行镜像:

#发布84端口, 创建两个卷,一个是配置文件目录,一个是日志文件目录
[root@iZotm71x017bylZ pas]# docker run -p 84:84 -v /opt/pas/config/:/usr/local/pas/config  -v  /opt/pas/logs/:/usr/local/pas/logs/ --name pas chenyaochn/pas

Starting PasApplication v1.0.0 on 35e4c217b9d4 with PID 5 (/usr/local/pas/pas-1.0.0.jar started by root in /usr/local/pas)

2. docker ps 可看到容器已经启动:

[root@iZotm71x017bylZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                        NAMES
35e4c217b9d4        chenyaochn/pas      "sh -c 'java $JAVA..."   15 hours ago        Up 15 hours         0.0.0.0:84->84/tcp                           pas

3. tail -f logs/pas.log 查看 日志,可看到日志文件已经在宿主服务器上生成:

[root@iZotm71x017bylZ pas]# tail -f logs/pas.log 
2017-09-03 10:09:35.271 INFO [main] o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-09-03 10:09:35.318 INFO [main] o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/webjars/**] onto ha

4.  curl  -I   http://localhost:84/pas/oauth  。成功访问pas项目 

[root@iZotm71x017bylZ pas]# curl  -I   http://localhost:84/pas/oauth
HTTP/1.1 200 
Content-Length: 0
Date: Sun, 03 Sep 2017 10:37:38 GMT

 

push 镜像到仓库

 1. docker push chenyaochn/pas

[root@iZotm71x017bylZ ~]# docker push chenyaochn/pas
The push refers to a repository [docker.io/chenyaochn/pas]
6cfcac5463b4: Pushed 
e378420761b2: Layer already exists 
b0f743408169: Layer already exists 
5bef08742407: Layer already exists 
latest: digest: sha256:1e3f1f1620cda285f62b10fec1f582a6b31d768dc7e98322cb96bb976a958333 size: 1159

2.查看

© 著作权归作者所有

共有 人打赏支持
trntaken
粉丝 3
博文 26
码字总数 34519
作品 0
深圳
程序员
微服务资源springboot、springcloud、docker、dubbo项目实战等倾心分享

精彩内容 java实战练习项目教程 全网最全电子图书分享 你所需要的大数据视频教程 java学习视频教程及源码 今天又是周末,还是想给大家送一些福利,因为最近一直有小伙伴问我要springboot等微...

公众号_好好学java
08/06
0
0
学习 Spring Boot 知识看这一篇就够了

从2016年因为工作原因开始研究 Spring Boot ,先后写了很多关于 Spring Boot 的文章,发表在技术社区、我的博客和我的公号内。粗略的统计了一下总共的文章加起来大概有六十多篇了,其中一部分...

ityouknow
05/28
0
0
使用 Docker 部署 Spring Boot之项目的构建

Docker通常用于如下场景: web应用的自动化打包和发布; 自动化测试和持续集成、发布; 在服务型环境中部署和调整数据库或其他的后台应用; 从头编译或者扩展现有的OpenShift或Cloud Foundry...

qq_28089993
04/21
0
0
腾讯云安装Docker,并部署Springboot

  最近想在微信公众号中做个小程序出来,供大家日常生活中使用。本来打算直接调阿里api市场中提供的接口的,可是发现其中的接口都是http的,而微信小程序中要求接口必须是https的,因此只能...

u013088062
04/25
0
0
Spring Boot项目Docker化快速上手

开篇   服务部署是应用上线前的必需环节。大道至简,如何做到项目简单化、自动化甚至傻瓜式部署是考验DevOps的一大难题。从docker面世到k8s的脱颖而出,有越来越多的开源工具也在帮助开发和...

mario阿东
09/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

精选Spring Boot三十五道必知必会知识点!

Spring Boot、Spring MVC 和 Spring 有什么区别? 1、Spring Spring最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。 当我们恰当的使用 DI 或者是 IOC 的时候,...

java知识分子
20分钟前
1
0
docker多容器部署lnmp环境

环境:RHEL7.5 ip:192.168.10.102,主机名:lb02 一、创建web、数据库目录 web网站目录为:/wwwroot,属主属组:www [root@lb02 ~]# mkdir /wwwroot[root@lb02 ~]# useradd -s /sbin/nolo...

人在艹木中
49分钟前
1
0
eclipse运行springboot项目报错‘找不到或无法加载主类’

这是一个很烦躁的问题~,往往困住大家好长时间,然后各种百度。借此,咱将这个问题有可能产生的原因进行一下总结。若有不完善之处欢迎大家在下面留言指出~~ Duang!问题出现 然后开始尝试解决...

Code辉
今天
1
0
springboot oauth2 跨域设置

@Overridepublic void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/security/**") .authentica......

昆虫大侠
今天
1
0
08-利用思维导图梳理JavaSE-泛型

08-利用思维导图梳理JavaSE-泛型 主要内容 1.泛型的基本概念 1.1.定义 1.2.使用前提 1.3.使用泛型的好处 2.泛型的使用 2.1.泛型类定义 2.2.泛型对象定义 2.3.泛型中的构造方法 2.4.泛型方法的...

飞鱼说编程
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部