文档章节

docker 部署springboot、dubbo项目

trntaken
 trntaken
发布于 2017/09/03 16:51
字数 1014
阅读 104
收藏 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.查看

© 著作权归作者所有

共有 人打赏支持
上一篇: springboot启动原理
下一篇: docker学习笔记
trntaken
粉丝 3
博文 26
码字总数 34519
作品 0
深圳
程序员
私信 提问
微服务资源springboot、springcloud、docker、dubbo项目实战等倾心分享

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

公众号_好好学java
2018/08/06
0
0
springboot dubbox 实例

---------------------------------------------------------------------------------------------------------------- springboot 详解 (一) helloworld 下载demo springboot 详解 (二)......

curiousby
2017/01/19
0
0
springboot整合docker部署(两种构建Docker镜像方式)

在docker开始部署springBoot项目(方法一) Dockerfile 文件 1.在centos7 ~ 创建一个文件夹docker 里面放置 上面的Dockerfile 和 springBoot 打包的项目dockerspringboot.jar 在该docker文件下...

时刻在奔跑
2018/12/05
0
0
docker(三):使用maven 插件构建docker镜像

---layout: blogistop: truetitle: "使用maven 插件构建docker镜像"date: 2018-09-11category: dockertags: docker --- 介绍 作为一个java后端开发人员,docker如何与Maven 工程相结合是我们......

开心的哈士奇
2018/10/17
0
0
springboot docker jenkins 部署 对比 tomcat

---------------------------------------------------------------------------------------------------------------- springboot 详解 (一) helloworld 下载demo springboot 详解 (二)......

curiousby
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IDE 插件新版本发布,开发效率 “biu” 起来了

近日,Cloud Toolkit正式推出了面向 IntelliJ 和 Eclipse 两个平台的新款插件,本文挑选了其中三个重大特性进行解读,点击文末官网跳转链接,可查看详细的版本说明。 本地应用一键部署到任何...

阿里云官方博客
13分钟前
1
0
我是怎样和Linux系统结缘并通过红帽RHCE认证的

我高考完当时就是选择的计算机科学与技术专业,上大学以后联想到的和计算机相关的就只有写代码,开发,网站,网页设计,就没有其他的了,当时学习写代码也都是在Windows上,什么C#、C++之类的...

linuxprobe16
14分钟前
0
0
Coding and Paper Letter(四十四)

资源整理。 1 Coding: 1.Rstudio2019年会“机器学习应用”的幻灯片,代码和数据 rstudio conf 2019 2.R语言包sparkxgb,Spark上XGBoost的R接口。 sparkxgb 3.自动SQL注入和数据库接管工具。 ...

胖胖雕
46分钟前
3
0
Ubuntu最新的主要操作系统放弃32位支持?

现在是2018年,2019年即将到来——64位处理器已经成为主流很长一段时间了。如果你仍然使用32位的电脑,那么是时候把它扔进垃圾箱了。 我为所有基于Linux的操作系统维护者感到自豪,他们有勇气...

Linux就该这么学
48分钟前
1
0
Fundebug发布Vue插件,简化BUG监控接入代码

摘要: 代码越短越好! 我们发布了fundebug-vue插件,可以简化Vue框架接入Fundebug的代码。 Vue如何接入Fundebug 1. 安装fundebug-javascript与fundebug-vue npm install fundebug-javascrip...

Fundebug
55分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部