小白都能懂晚碾!docker部署開(kāi)源項(xiàng)目renrne-fast

需求

很多人還沒(méi)用過(guò)docker糯耍,或者說(shuō)還沒(méi)用docker安裝過(guò)項(xiàng)目扔字,今天我?guī)Т蠹沂褂胐ocker安裝一個(gè)開(kāi)源項(xiàng)目renren-fast囊嘉,包括它的前端與后端。這中間我們需要安裝一些需要的資源革为,比如redis扭粱、mysql、nginx等

我們先來(lái)看下renrne-fast的git倉(cāng)庫(kù):

renren-fast:https://gitee.com/renrenio/renren-fast

renren-fast-vue:https://gitee.com/renrenio/renren-fast-vue

所以renren-fast是個(gè)前后端分離的項(xiàng)目震檩。下面我們就開(kāi)始啦琢蛤,坐好小板凳哈。

簡(jiǎn)介

Docker是一個(gè)開(kāi)源的容器引擎抛虏,它有助于更快地交付應(yīng)用博其。Docker可將應(yīng)用程序和基礎(chǔ)設(shè)施 層隔離,并且能將基礎(chǔ)設(shè)施當(dāng)作程序一樣進(jìn)行管理迂猴。使用 Docker可更快地打包慕淡、測(cè)試以及部 署應(yīng)用程序,并可以縮短從編寫(xiě)到部署運(yùn)行代碼的周期沸毁。

重要資源

dockerhub(https://hub.docker.com/)

鏡像倉(cāng)庫(kù)峰髓,存放著 Docker 及其組件的所有資源,作用類(lèi)GitHub

Harbor(https://github.com/goharbor/harbor/releases)

docker私服息尺,可搭建搭建本地倉(cāng)庫(kù)

基本命令

兩種方式安裝docker

#安裝

wget -qO- https://get.docker.com | sh

#或者:

yum install docker

#檢查是否安裝成功

docker version

啟動(dòng)與重啟

# 啟動(dòng)docker

systemctl start docker

# 重啟

service docker rest

切換鏡像源

就像maven鏡像切換成aliyun的一樣儿普,國(guó)外的鏡像拉取很慢,所以最好切換成國(guó)內(nèi)的

#換鏡像源:

sudo vim /etc/docker/daemon.json

內(nèi)容如下:

{

"registry-mirrors": ["https://m9r2r2uj.mirror.aliyuncs.com"]

}

#修改保存后掷倔,重啟 Docker 以使配置生效眉孩。

sudo service docker restart

其他命令

#搜索鏡像

docker search java

#拉取鏡像

docker pull java:8

#刪除鏡像

docker rmi java:8

#列出容器

docker? ps

#停止容器

docker stop {id}

進(jìn)入容器

docker exec -it f0b1c8ab3633 /bin/bash

#刪除容器(該命令只能刪除已停止的容器,如需刪除正在運(yùn)行的容器勒葱,可使用-f參數(shù))

docker rm f0b

總結(jié)過(guò)程

第一步浪汪、先安裝docker、檢查docker是否安裝成功 第二步凛虽、切換docker的鏡像源 第三步死遭、啟動(dòng)docker 第四步、可以嘗試一下命令集合:

docker search java

docker pull java:8

docker rmi java:8

ok凯旋,完成了上面的步驟之后我們基本對(duì)docker的命令有點(diǎn)了解了呀潭,接下來(lái)我們?nèi)グ惭b一下對(duì)應(yīng)的環(huán)境。

安裝環(huán)境

需要安裝什么中間件至非,我們可以上dockerhub上去搜索钠署,然后選擇一個(gè)自己想要的版本進(jìn)行下載,所有dockerhub一定要學(xué)會(huì)用荒椭,并且一般搜索詳情頁(yè)面一般都會(huì)給出對(duì)應(yīng)的中間件的安裝方式和一些參數(shù)說(shuō)明谐鼎。

那么接下來(lái)我們依次安裝一下redis、mysql趣惠、nginx狸棍、還有jdk

安裝redis

首先上dockerHub搜索redis身害,點(diǎn)擊進(jìn)入詳情頁(yè)之后,拉到下面就可以看到how to use草戈,如果需要選擇特定的版本塌鸯,有Supported tags給我們選擇,然后如果拉取最新的版本的話(huà)唐片,拉倒下面就教程丙猬。

https://hub.docker.com/_/redis

#拉取redis的鏡像

docker pull redis

#查看本地redis鏡像

docker images

#運(yùn)行redis(公眾號(hào)關(guān)注:java程序媛之家)

docker run --name myredis -p 6379:6379 -d redis redis-server --appendonly yes

docker run表示運(yùn)行的意思

--name myredis 表示起個(gè)名字叫myredis

-p 6379:6379表示把服務(wù)器的6379映射到docker的6379端口,這樣就可以通過(guò)服務(wù)器的端口訪(fǎng)問(wèn)docker的端口

-d 表示以后臺(tái)服務(wù)形式運(yùn)行redis

redis redis-server --appendonly yes表示開(kāi)啟持久化緩存模式牵触,可以存到硬盤(pán)

安裝mysql

https://hub.docker.com/_/mysql

MYSQLROOTPASSWORD=admin表示root的初始密碼 mysql:5.7.27表示操作的是mysql的5.7.27版本,沒(méi)有后面的版本號(hào)的話(huà)咐低,默認(rèn)是拉取最新版本的mysql揽思。

docker pull mysql:5.7.27

docker run --name mymysql -e MYSQL_ROOT_PASSWORD=admin -d -p 3306:3306? mysql:5.7.27

連上mysql,創(chuàng)建數(shù)據(jù)庫(kù)renren_fast见擦,然后把renren-fast的腳本導(dǎo)入進(jìn)去钉汗。腳本位置:https://gitee.com/renrenio/renren-fast/blob/master/db/mysql.sql

安裝jdk

然后我們拉取一下jdk的環(huán)境,因?yàn)閞enren-fast是個(gè)springboot項(xiàng)目鲤屡,所以我們先提前準(zhǔn)備好java環(huán)境损痰,這樣構(gòu)建renren-fast項(xiàng)目的時(shí)候就不再需要去遠(yuǎn)程的倉(cāng)庫(kù)下載,可以提高項(xiàng)目的構(gòu)建速度酒来。

只有一行命令卢未,執(zhí)行完就可以。

#拉群jdk8

docker pull java:8

#查看本地鏡像

docker images

打包運(yùn)行項(xiàng)目

接下來(lái)堰汉,我們需要先去clone renren-fast項(xiàng)目辽社,對(duì)項(xiàng)目進(jìn)行打包成jar包。

mvn clean package

然后把項(xiàng)目renren-fast.jar包上傳到服務(wù)器中

在jar包同目錄下新建文件:Dockerfile

https://gitee.com/renrenio/renren-fast/blob/master/Dockerfile

vim Dockerfile

#內(nèi)容如下:

FROM java:8

EXPOSE 8080

VOLUME /tmp

ADD renren-fast.jar? /app.jar

RUN bash -c 'touch /app.jar'

ENTRYPOINT ["java","-jar","/app.jar"]

參數(shù)說(shuō)明一下:

FROM java:8 表示基于jdk8環(huán)境 EXPOSE 8080 表示對(duì)外暴露的端口是8080

VOLUME /tmp 表示掛載到/tmp目錄 ADD renren-fast.jar /app.jar 表示把jar包復(fù)制到鏡像服務(wù)里面的根目錄翘鸭,并改名稱(chēng)app.jar RUN bash -c 'touch /app.jar' 表示執(zhí)行創(chuàng)建app.jar ENTRYPOINT ["java","-jar","/app.jar"] 表示執(zhí)行啟動(dòng)命令java -jar

所以上面的Dockerfile就是構(gòu)建docker鏡像的關(guān)鍵文件滴铅,然后在這個(gè)目錄下執(zhí)行構(gòu)建命令:

#構(gòu)建renren鏡像,:0.0.1表示版本號(hào)就乓,后面的的.表示當(dāng)前目錄

docker build -t renren:0.0.1 .

#構(gòu)建完成之后啟動(dòng)項(xiàng)目

docker run -p 8080:8080 renren:0.0.1

ok汉匙,然后我們就可以看到項(xiàng)目啟動(dòng)輸出的日志的了其實(shí)。那平時(shí)要去哪看項(xiàng)目的日志呢生蚁?查看運(yùn)行的容器日志:?

docker logs -f -t --tail 行數(shù) 容器名

ok噩翠,致此,后端的服務(wù)已經(jīng)完全構(gòu)建完成邦投,我們可以通過(guò)8080端口訪(fǎng)問(wèn)到我們的后端服務(wù)了绎秒。接下來(lái)我們?nèi)ジ闱岸朔?wù)。

前端是vue尼摹,所以就打包然后放到nginx里面就好见芹。

安裝nginx

首先拉取nginx鏡像

docker pull nginx

然后啟動(dòng)剂娄,一些文件夾進(jìn)行掛載

docker run -d -p 80:80? -v ~/nginx/www:/usr/share/nginx/html nginx

-v ~/nginx/www:/usr/share/nginx/html表示掛載,把docker內(nèi)服務(wù)的/usr/share/nginx/html掛載到我當(dāng)前服務(wù)器的~/nginx/www目錄玄呛,所以我們?cè)趡/nginx/www放靜態(tài)文件相當(dāng)于在docker里的/usr/share/nginx/html放文件阅懦。

所以我們打包之后的文件都要上傳到~/nginx/www目錄。

打包前端

打開(kāi)renren-fast-vue文件夾徘铝,打開(kāi)cmd命令行耳胎,然后運(yùn)行命令。

由于前端使用vue開(kāi)發(fā)惕它,因此需要安裝node.js環(huán)境怕午。node.js安裝教程:http://nodejs.cn/download/?下載msi版本安裝。

安裝之后淹魄,命令行窗口郁惜,表示安裝成功。


然后啟動(dòng)安裝

# 安裝淘寶的鏡像命令

npm install -g cnpm --registry=https://registry.npm.taobao.org

# 安裝依賴(lài)

cnpm instal

# 打包項(xiàng)目

npm run build

然后你就可以在項(xiàng)目根目錄下找到自動(dòng)生成一個(gè)dist文件夾甲锡,上傳到linux的~/nginx/www目錄下兆蕉。

打開(kāi)服務(wù)器的ip地址加/dist/index.html首頁(yè)

http://192.168.1.102/dist/index.html

如果遇到了403,這是權(quán)限問(wèn)題缤沦,運(yùn)行一下命令:

chcon -Rt svirt_sandbox_file_t ~/nginx/www

再次訪(fǎng)問(wèn)虎韵,運(yùn)行成功!

總結(jié)

好啦缸废,今天的文章先到這里了包蓝,有問(wèn)題,我們留言區(qū)見(jiàn)~~~

-END-

看完本文有收獲企量?請(qǐng)轉(zhuǎn)發(fā)分享給更多人

關(guān)注「java程序媛之家」养晋,提升Java技能

【推薦閱讀】

34張深夜監(jiān)控照,撕開(kāi)了上億成年人的偽裝

可能是全網(wǎng)最好的MySQL重要知識(shí)點(diǎn)

女生這樣子對(duì)你梁钾,100%把你當(dāng)備胎了

導(dǎo)圖梳理springboot手動(dòng)绳泉、自動(dòng)裝配,讓springboot不再難懂

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姆泻,一起剝皮案震驚了整個(gè)濱河市零酪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拇勃,老刑警劉巖四苇,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異方咆,居然都是意外死亡月腋,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)榆骚,“玉大人片拍,你說(shuō)我怎么就攤上這事〖酥” “怎么了捌省?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)碉钠。 經(jīng)常有香客問(wèn)我纲缓,道長(zhǎng),這世上最難降的妖魔是什么喊废? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任祝高,我火速辦了婚禮,結(jié)果婚禮上污筷,老公的妹妹穿的比我還像新娘工闺。我一直安慰自己,他們只是感情好颓屑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布斤寂。 她就那樣靜靜地躺著耿焊,像睡著了一般揪惦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上罗侯,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天器腋,我揣著相機(jī)與錄音,去河邊找鬼钩杰。 笑死纫塌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的讲弄。 我是一名探鬼主播措左,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼避除!你這毒婦竟也來(lái)了怎披?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓶摆,失蹤者是張志新(化名)和其女友劉穎凉逛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體群井,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡状飞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诬辈。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡酵使,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出自晰,到底是詐尸還是另有隱情凝化,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布酬荞,位于F島的核電站搓劫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏混巧。R本人自食惡果不足惜枪向,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咧党。 院中可真熱鬧秘蛔,春花似錦、人聲如沸傍衡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蛙埂。三九已至倦畅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绣的,已是汗流浹背叠赐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屡江,地道東北人芭概。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像惩嘉,于是被迫代替她去往敵國(guó)和親罢洲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容