1. 程式人生 > >部署Java Web 專案

部署Java Web 專案

前言

同事讓我研究一下,如何把我們公司自己的產品,通過Docker搞一個映象。後面換伺服器,方便專案部署,而不用在新的伺服器上重新搭建相關環境。 之前簡單的瞭解過Docker。並且之前通過docker搭建gogs,也體會到了docker的強大和方便。這次,正好借這個機會,好好閱讀一下官方文件,通過實踐來更加熟悉docker!將我們的產品一步一步部署到docker中。

關於Docker

Docker有兩個版本:

社群版(CE) 企業版(EE) Docker Community Edition(CE)非常適合希望開始使用Docker並嘗試使用基於容器的應用程式的個人開發人員和小型團隊。

Docker企業版(EE)專為企業開發和IT團隊而設計,他們可以在生產中大規模構建,釋出和執行業務關鍵型應用程式。

伺服器環境

騰訊雲伺服器:Ubuntu Server 16.04.1 LTS 64位

安裝Docker

傳送門:Docker官網關於Ubuntu安裝Docker CE – Get Docker CE for Ubuntu

這裡我們安裝Docker CE(社群版)就好,夠用了。

安裝Docker可參考我的這篇部落格 – ubuntu16.04下安裝docker,其內容也來著於Docker官方文件。

您可以根據需要以不同方式安裝Docker CE(包括以下3種方式): 1.大多數使用者 設定Docker的儲存庫並從中進行安裝,以便於安裝和升級任務。這是推薦的方法。 2.有些使用者下載DEB軟體包並 手動安裝並完全手動管理升級。這在諸如在沒有訪問網際網路的氣隙系統上安裝Docker的情況下非常有用。 3.在測試和開發環境中,一些使用者選擇使用自動 便捷指令碼來安裝Docker。

推薦使用方法1安裝,即使用儲存庫安裝:過程如下~~

# 1.解除安裝舊版本
# 較舊版本的Docker被稱為docker或docker-engine。如果已安裝,請解除安裝它們:
$ sudo apt-get remove docker docker-engine docker.io

使用儲存庫安裝 在新主機上首次安裝Docker CE之前,需要設定Docker儲存庫。之後,您可以從儲存庫安裝和更新Docker。

設定儲存庫 更新apt包索引:

$ sudo apt-get update 安裝包以允許apt通過HTTPS使用儲存庫:

$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common 新增Docker的官方GPG金鑰:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通過搜尋指紋的最後8個字元,驗證您現在擁有帶指紋的金鑰 。

$ sudo apt-key fingerprint 0EBFCD88

pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker Release (CE deb) [email protected] sub 4096R/F273FCD8 2017-02-22 使用以下命令設定穩定儲存庫。即使您還想從邊緣或測試儲存庫安裝構建,您始終需要穩定的儲存 庫。要新增邊緣或 測試儲存庫,請在下面的命令中的單詞後新增單詞或(或兩者)。edgeteststable

注意:下面的lsb_release -cs子命令返回您的Ubuntu發行版的名稱,例如xenial。有時,在像Linux Mint這樣的發行版中,您可能需要更改$(lsb_release -cs) 為父Ubuntu發行版。例如,如果您正在使用 Linux Mint Rafaela,則可以使用trusty。

x86_64 / amd64 armhf IBM Power(ppc64le) IBM Z(s390x) $ sudo add-apt-repository \ “deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable” 注意:從Docker 17.06開始,穩定版本也會被推送到邊緣並測試儲存庫。

瞭解穩定和邊緣渠道。

安裝DOCKER CE 更新apt包索引。

$ sudo apt-get update 安裝最新版本的Docker CE,或轉到下一步安裝特定版本:

$ sudo apt-get install docker-ce 有多個Docker儲存庫?

如果您啟用了多個Docker儲存庫,則在未指定apt-get install或 apt-get update命令中的版本的情況下安裝或更新始終會安裝儘可能高的版本,這可能不適合您的穩定性需求。

要安裝特定版本的Docker CE,請列出repo中的可用版本,然後選擇並安裝:

一個。列出您的倉庫中可用的版本:

$ apt-cache madison docker-ce

docker-ce | 18.03.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages 灣 按其完全限定的包名稱安裝特定版本,例如,包名稱(docker-ce)“=”版本字串(第2列) docker-ce=18.03.0~ce-0~ubuntu。

$ sudo apt-get install docker-ce= Docker守護程式自動啟動。

通過執行hello-world 映像驗證是否正確安裝了Docker CE 。

$ sudo docker run hello-world 此命令下載測試映像並在容器中執行它。當容器執行時,它會列印一條資訊性訊息並退出。

Docker CE已安裝並正在執行。該docker組已建立,但未向其新增任何使用者。您需要使用它sudo來執行Docker命令。繼續Linux postinstall以允許非特權使用者執行Docker命令和其他可選配置步驟。

相關命令

兩種方法部署Java web

image

docker exec -t xenodochial_mcnulty /bin/bash

Dockerfile

下面是我為了搭建一個java web專案執行環境,簡單編寫的一個Dockerfile檔案:包括JDK1.8 + maven 3.5 + git + tomcat8

Dockefile完整內容如下:

#基於ubuntu
FROM ubuntu

#重新整理包快取 並且 安裝wget工具
RUN apt-get update && apt-get install -y wget
#安裝vim
RUN apt-get install -y vim
#安裝git
RUN apt-get -y install git

#設定工作目錄
WORKDIR /home

# 安裝jdk1.8
RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
RUN tar -zxvf jdk-8u181-linux-x64.tar.gz

# 安裝maven
RUN wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
RUN tar -zxvf apache-maven-3.5.4-bin.tar.gz

# 配置環境變數
# set jdk
ENV JAVA_HOME /home/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin
# set maven
ENV M2_HOME /home/apache-maven-3.5.4
ENV PATH $PATH:$JAVA_HOME/bin:$M2_HOME/bin

#安裝 tomcat8
#RUN apt-get update
RUN wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
RUN tar -zxvf apache-tomcat-8.5.34.tar.gz

#配置tomcat的環境變數
#ENV CATALINA_HOME /home/apache-tomcat-8.5.34
#EXPOSE 8080

#設定tomcat 自啟動

簡單說一下Dockerfile中的用到的幾個指令: FROM RUN WORKDIR ENV