部署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