1. 程式人生 > >docker 部署springboot、dubbo專案

docker 部署springboot、dubbo專案

建立專案

1.建立一個springboot專案 pas。隨便寫一個Controller類:

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

     。。。。。
 }

2.打包部署pas。部署到linux 。目錄結構如下:

[[email protected] 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
[[email protected] 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下。

[[email protected] 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 ,最終結構如下:
[[email protected] 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 .構建映象  如下顯示:

[[email protected] 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檢視映象 ,已經建立成功:
[[email protected] pas]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
chenyaochn/pas      latest              3efcebec6a4d        45 minutes ago      129MB

部署

部署zookeeper

1.從docker hub上下載最新zookeeper映象。

[[email protected] ~]# docker pull zookeeper 
Using default tag: latest

可以將,zookeeper conf/目錄掛載到宿主伺服器,容器和宿主伺服器共享zoo.cfg配置檔案,方便對zookeeper配置的修改。

2.執行

[[email protected] ~]# docker run  -d -p 2181:2181 --name zookeeper zookeeper 
2defe46356fe8f28126350360f75c06cced32eb5154a391027e574b88bf3245a

3. 檢視 執行結果:
[[email protected] ~]# 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埠, 建立兩個卷,一個是配置檔案目錄,一個是日誌檔案目錄
[[email protected] 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 可看到容器已經啟動:
[[email protected] ~]# 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 檢視 日誌,可看到日誌檔案已經在宿主伺服器上生成:
[[email protected] 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專案 
[[email protected] 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

[[email protected] ~]# 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



相關推薦

docker 部署springbootdubbo專案

建立專案 1.建立一個springboot專案 pas。隨便寫一個Controller類: @RequestMapping(value = "/oauth") public void authentication(HttpServletRequest request,

docker部署 springboot 多模組專案+vue

之前學習了docker,今天就來試試將這個專案打包成docker映象並通過執行一個映象來執行專案。這裡使用的專案是el-admin。是一個開源的springboot後端管理框架(前端vue),有興趣的小夥伴可以去看看。 網址:https://el-admin.vip 關於docker的入門可以檢視我之前的

Docker $ 專案部署Docker 部署 SpringBoot + Mysql

一.Dockerfile常用指令 FROM 目的 指定基礎映象 特點 需要寫在其他指令之前,之後的指令都依賴於該指令指定的映象。 語法 FROM <image> FROM <image&g

Docker部署SpringBoot專案(java10, jdk10,MAC)

build.gradle: // Apply the java-library plugin to add support for Java Library apply plugin: 'java-library' apply plugin: 'java' apply plugin: 'org.

初次部署springbootdockerredismysqlnginx

本文章適合所有初學者閱讀、我會從剛買來的一臺伺服器開始從零到部署專案   當然怎麼購買我就不多說了 使用到的技術有springboot、docker、redis、mysql、nginx 操作環境MAC電腦 首先通過終端連線伺服器   ssh [email pr

使用docker部署SpringBoot專案

1.新建一個SpringBoot專案 自己寫吧。。。。我放個測試的 package com.pibigstar.web; import org.springframework.stereotype.Controller; import org.spri

記一次docker部署springboot專案,mysql以及redis一樣是docker中安裝

一:首先 在idea中的springboot專案打成jar包,具體是方式是如下 這裡的資料庫密碼和賬戶必須是真確的,資料庫和redis也是在docker中安裝的 二:在docker中安裝mysql的服務 這裡的linux的版本是centos,具

Windows10下--Docker部署SpringBoot專案

       網上的“Docker部署SpringBoot專案”教程大多數是Linux環境下的,而往往初學者沒有Linux伺服器,不方便學習。因此,經過半天的研究,我成功的部署了在Windows10下用Docker部署了SpringBoot專案,在這裡分享給大家。    

Docker---(5)Docker 部署SpringBoot web專案

注:博主系統是ubuntu。SpringBoot專案釋出到伺服器,是一件很簡單的事情,但是釋出到伺服器上docker啟動的tomcat容器中,有一些坑,需要注意。下面完整的介紹一下:將SpringBoot web專案釋出到docker啟動的tomcat容器中。1.pom.xm

Docker部署springboot專案例項

一. 背景 快到2018了,一年過得如火如荼,今年因為K8S的原因,Docker很是紅火、 一個簡單的Docker部署Springboot專案例項供大家參考、 二. 例項 步驟: 1.

Docker部署SpringBoot專案

前提是已經擁有一個docker環境和一個springboot打成的jar包,搭建docker環境可參考上一篇博文ECS上搭建Docker(CentOS7) 1.建立Dockerfile 建立一個檔名為Dockerfile的檔案,複製以下內容到檔案中

docker部署springboot專案並連線mysql容器

1. 先拉取mysql映象(因為比較慢) docker pull mysql:5.7 2. 構建要部署的專案映象 2.1 建立一個目錄 [email protected]:/usr/local/docker# mkdir docker-web 1. 將

[新手入門]docker部署springboot專案

1 建立檔案Dockerfile FROM java:8  VOLUME /tmp  ADD testwebapp-0.0.1.jar app.jar  RUN bash -c ‘touch /app

Docker-Docker部署SpringBoot專案

## 1.手工方式 ### 1.1.準備Springboot jar專案 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20191229152232519.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpd

使用Docker部署SpringBoot

ces 設置 pin cache doc work git term pro 轉載自:https://www.cnblogs.com/ityouknow/p/8599093.html Docker 技術發展為微服務落地提供了更加便利的環境,使用 Docker 部署 Spr

docker 部署nginxphp-fpm

假設機器上已經安裝好docker環境 一.執行nginx容器 1.查詢Docker Hub 上的nginx 映象 [email protected]:~/nginx$ docker search nginx NAME DESCRIPTION

centos7.5 下docker部署springboot應用

本篇dock部署springboot應用的前提:準備好docker環境和要部署的springboot應用的jar包 一、docker環境準備          在虛擬機器centos上安裝docker或者其他可以使用的centos都可以,本篇

docker部署springboot,並且檢視執行日誌

docker部署springboot(預設已經安裝好docker) 第一步:構建映象 建立Dockerfile檔案,檔案內容如下: FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD index-1.5.10.RELEASE.ja

使用 Docker 部署 Springboot 應用

介紹一種新的部署方式,讓應用部署更加簡單高效。 對於微服務架構來說,服務拆分的越多,運維的成本也就越高,以前的一個系統只需要部署一次就可以了,但拆分成多個服務後,就需要多次部署了,為了簡化部署流程,容器化成了該問題的最佳解決方案。 這裡假定大家對 Springboot 應用的搭建及 Dock

springboot(9)--docker部署springboot應用

docker:應用容器引擎,使用者在客戶端可以將應用和應用的執行環境、依賴包等打包成映象,上傳到映象倉庫,然後在伺服器拉取映象並執行。不同映象之間的依賴互不影響,且映象的執行效率很高。 0.拉取jdk8映象 這個待會用作基映象。 docker pull open