CentOS8上用Docker部署開(kāi)源項(xiàng)目Tcloud

一、安裝Docker

1、我是虛擬機(jī)裝的Centos7循诉,linux 3.10 內(nèi)核茄猫,docker官方說(shuō)至少3.8以上困肩,建議3.10以上(ubuntu下要linux內(nèi)核3.8以上)

root賬戶登錄锌畸,查看內(nèi)核版本如下

uname -a

2潭枣、把yum包更新到最新

yum update

(期間要選擇確認(rèn)盆犁,輸入?y 即可)

3、安裝需要的軟件包谐岁,yum-util 提供yum-config-manager功能,另外兩個(gè)是devicemapper驅(qū)動(dòng)依賴的

yum install -y yum-utils device-mapper-persistent-data lvm2

4窜司、設(shè)置yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里倉(cāng)庫(kù))

5锭魔、可以查看所有倉(cāng)庫(kù)中所有docker版本,并選擇特定版本安裝

yum list docker-ce --showduplicates | sort -r

6迷捧、安裝Docker胀葱,命令:yum install docker-ce-版本號(hào)笙蒙,我選的是docker-ce-18.03.1.ce,如下

yum install docker-ce-18.03.1.ce

(期間要選擇確認(rèn)轧葛,輸入?y 即可)

7艇搀、啟動(dòng)Docker,命令:systemctl start docker焰雕,然后加入開(kāi)機(jī)啟動(dòng),如下:

systemctl start docker #啟動(dòng)docker

systemctl enable docker #設(shè)置docker為開(kāi)機(jī)自啟

sudo docker run --rm hello-world? #啟動(dòng)docker中的hello-word

8辟宗、如果看到如圖:

則說(shuō)明安裝doceker成功

二吝秕、接下來(lái)安裝doceker-compose

1、運(yùn)行以下命令下載Docker Compose的當(dāng)前穩(wěn)定版本:

sudo curl -L"https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2容客、將可執(zhí)行權(quán)限應(yīng)用于二進(jìn)制文件:

sudo chmod +x /usr/local/bin/docker-compose

3约郁、注意:如果命令docker-compose在安裝后失敗,請(qǐng)檢查您的路徑调煎。您也可以創(chuàng)建指向/usr/bin或路徑中任何其他目錄的符號(hào)鏈接己肮。

例如:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4、檢查docker-compose 是否安裝成功

doceker-compose --version

三谎僻、安裝與配置Git

1、在Linux上是有yum安裝Git赤拒,非常簡(jiǎn)單,只需要一行命令:

yum -y install git?

輸入:

git --version

查看Git是否安裝完成以及查看其版本號(hào)

2挎挖、配置git:

git config --global user.name"xxx"

git config --global user.email"xxxxx@xx.com"

git config --global core.autocrlffalse

git config --global gui.encoding utf-8

3蕉朵、執(zhí)行下面的命令,一直回車冷蚂,直到結(jié)束

ssh-keygen -t rsa -C"xxxxx@xxx.com"

4蝙茶、生成ssh key

cat ~/.ssh/id_rsa.pub?

5诸老、登陸GitHub孕锄,點(diǎn)擊setting>SSH?and GPG keys>New SSH Key 將生成的密鑰復(fù)制到Key中即可

6畸肆、測(cè)試是否配置成功

ssh -T git@github.com


7宙址、出現(xiàn)這樣一段話抡砂,即證明配置成功注益。

Hi RoninLee! You've successfully authenticated, but GitHub does not provide shell access.


四丑搔、后端部署

1啤月、運(yùn)行以下命令拉起源碼:

git clone https://github.com/bigbaser/TcloudServer.git

2煮仇、進(jìn)入到TcloudServer\deploy目錄下,使用以下命令谎仲,拉取所有(等待一會(huì)浙垫,拉取時(shí)間較長(zhǎng))

docker-compose pull

3、然后修改local_config.py文件,

# 這里的賬號(hào)密碼是在docker-compose.yml中配置的夹姥,改成以下

SQLALCHEMY_DATABASE_URI ='mysql://root:tc123456@mysql:3306/demo?charset=utf8'

4杉武、再初始化kong的數(shù)據(jù)庫(kù)(如果報(bào)錯(cuò),再執(zhí)行一次佃声,成功的話會(huì)顯示Database is up-to-date)

$ sudo docker-compose up -d kong_database// 容器啟動(dòng)以后,數(shù)據(jù)庫(kù)會(huì)本地掛載到 ./volumes/kong_database 里面// 但由于權(quán)限問(wèn)題圾亏,初始化數(shù)據(jù)庫(kù)會(huì)失敗十拣,所以要先對(duì)該文件賦予權(quán)限

$ sudo chmod -R777./volumes/kong_database

$ sudo docker-compose run --rm kong kong migrations bootstrap

5、然后啟動(dòng)所有項(xiàng)目

$ sudo docker-compose up -d

6志鹃、查看啟動(dòng)狀態(tài)

$ sudo docker-compose ps

7夭问、如果所有狀態(tài)均為up,則運(yùn)行正常曹铃,否則查看日志

sudo docker logs <name>查看日志

8缰趋、打開(kāi)konga(kong的管理頁(yè)面,http://localhost:9001)陕见,注冊(cè)賬號(hào)并登錄秘血,再新建連接,地址為http://kong:8001

9评甜、成功后灰粮,進(jìn)入SNAPSHOT頁(yè)面,點(diǎn)擊IMPORT FROM FILE忍坷,選擇我們的kong.json文件粘舟,并進(jìn)入DETAILS中RESTORE,全選導(dǎo)入佩研,可能會(huì)出錯(cuò)柑肴,再執(zhí)行一次即可,此時(shí)我們的網(wǎng)關(guān)服務(wù)已經(jīng)運(yùn)行完成旬薯,地址為http://localhost:9000

ps: 數(shù)據(jù)庫(kù)初始化文件是init/init.sql晰骑,可以通過(guò)sudo docker-compose down -v再刪除volume/mysql掛載目錄之后,sudo docker-compose up -d來(lái)重新初始化數(shù)據(jù)庫(kù)

五绊序、前端部署

1些侍、安裝node環(huán)境

從CentOS儲(chǔ)存庫(kù)安裝Node.js和npm

可以從標(biāo)準(zhǔn)CentOS存儲(chǔ)庫(kù)中安裝Node.js和npm。

通過(guò)運(yùn)行以下命令列出提供nodejs軟件包的模塊:

yummodulelist nodejs

要在CentOS系統(tǒng)上安裝默認(rèn)的Node.js軟件包政模,請(qǐng)輸入:

sudo yummoduleinstall nodejs

輸入以下命令:

node --version? #檢查node 是否安裝成功

npm --version? #檢查 npm 是否安裝成功

2岗宣、使用以下命令拉取前端代碼:

git clone? https://github.com/bigbaser/Tcloud.git

3、在前端項(xiàng)目的根目錄下執(zhí)行:npm install 安裝依賴包

4淋样、安裝依賴包如報(bào)以下錯(cuò):

解決辦法:

4.1耗式、輸入以下命令:

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

4.2、建立軟鏈接:

sudo ln -s {此處為你安裝npm的路徑}.npm-global/bin/cnpm /usr/local/bin/cnpm

4.3、輸入:

cnpm --version 檢查是否安裝成功刊咳。

5彪见、修改config/dev.env.js與index.js文件中的BASE_URL 地址為http://0.0.0.0


6、運(yùn)行前端項(xiàng)目:

npm run dev

7娱挨、在非?localhost 域名下登錄不成功余指,可以打開(kāi)開(kāi)發(fā)者工具,查看?Application?下的?Cookies?是否有?JWT_TOKEN_TCLOUD_DEV跷坝。

如果沒(méi)有酵镜,找到前端項(xiàng)目?Tcloud/src/store/modules/login.js,修改第57行柴钻,把

domain: process.env.NODE_ENV ==='development'?'localhost': COOKIE_DOMAIN修改為:

domain: COOKIE_DOMAIN

然后修改?config 下的 dev.env.js淮韭,把 COOKIE_DOMAIN 改成前端當(dāng)前訪問(wèn)域名即可。


六贴届、報(bào)錯(cuò)總結(jié):

一靠粪、docker pull 鏡像時(shí)報(bào)錯(cuò):

1、

ERROR: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on such host

2毫蚓、

ERROR: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on xxx.xxx.xxx.xxx:xxxx: lame referral

3占键、

Error response from daemon: Get https://index.docker.io/v1/search?q=sameersbn&n=25: dial tcp: lookup index.docker.io on192.168.65.1:53: read udp192.168.65.2:45190->192.168.65.1:53: i/o timeout

Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

二、分析問(wèn)題:

問(wèn)題1元潘、2這個(gè)是因?yàn)镈NS域名沒(méi)有解析的原因畔乙。

問(wèn)題3 網(wǎng)絡(luò)連接超時(shí),這情況涉及到很多因素柬批。

三、解決辦法:

問(wèn)題:1袖订、2:

vi ?/etc/resolv.conf ?增加一行DNS地址:

例如:nameserver ?114.114.114.114 (此方法服務(wù)器重啟之后會(huì)失效氮帐。參考方法2:vi /etc/sysconfig/network-scripts/ifcfg-ens33打開(kāi)網(wǎng)卡配置文件,在配置文件中添加:DNS1=”8.8.8.8”,DNS2=”114.114.114.114”)

保存之后洛姑,繼續(xù)執(zhí)行拉取鏡像的命令上沐,即可!

問(wèn)題:3:

3.1通過(guò)dig @114.114.114.114 registry-1.docker.io找到可用IP

3.2嘗試修改/etc/hosts強(qiáng)制docker.io相關(guān)的域名解析到其它可用IP

3.3保存之后重試即可: docker search sameersbn





附一些常用Docker命令楞艾,更多命令詳解参咙,請(qǐng)?jiān)L問(wèn):http://www.docker.org.cn/dockerppt/106.html:


?-----------------? ?? docker ps 查看當(dāng)前正在運(yùn)行的容器


?-----------------? ??docker ps -a 查看所有容器的狀態(tài)


?-----------------? ??docker start/stop id/name 啟動(dòng)/停止某個(gè)容器


?-----------------? ??docker attach id 進(jìn)入某個(gè)容器(使用exit退出后容器也跟著停止運(yùn)行)


?-----------------? ??docker exec -ti id 啟動(dòng)一個(gè)偽終端以交互式的方式進(jìn)入某個(gè)容器(使用exit退出后容器不停止運(yùn)行)


?-----------------? ??docker images 查看本地鏡像

?-----------------? ??docker rm id/name 刪除某個(gè)容器

-----------------? ???docker rmi id/name 刪除某個(gè)鏡像


?-----------------? ??docker run --name test -ti ubuntu /bin/bash? 復(fù)制ubuntu容器并且重命名為test且運(yùn)行,然后以偽終端交互式方式進(jìn)入容器硫眯,運(yùn)行bash


-----------------? ???docker build -t soar/centos:7.1 .? 通過(guò)當(dāng)前目錄下的Dockerfile創(chuàng)建一個(gè)名為soar/centos:7.1的鏡像


?-----------------? ??docker run -d -p 2222:22 --name test?soar/centos:7.1? 以鏡像soar/centos:7.1創(chuàng)建名為test的容器蕴侧,并以后臺(tái)模式運(yùn)行,并做端口映射到宿主機(jī)2222端口两入,P參數(shù)重啟容器宿主機(jī)端口會(huì)發(fā)生改變

?


參考:https://github.com/bigbaser/TcloudServer/blob/master/deploy/docs/Docker%E9%83%A8%E7%BD%B2.md

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末净宵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌择葡,老刑警劉巖紧武,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異敏储,居然都是意外死亡阻星,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門已添,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)妥箕,“玉大人,你說(shuō)我怎么就攤上這事酝碳》猓” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵疏哗,是天一觀的道長(zhǎng)呛讲。 經(jīng)常有香客問(wèn)我,道長(zhǎng)返奉,這世上最難降的妖魔是什么贝搁? 我笑而不...
    開(kāi)封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮芽偏,結(jié)果婚禮上雷逆,老公的妹妹穿的比我還像新娘。我一直安慰自己污尉,他們只是感情好膀哲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著被碗,像睡著了一般某宪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锐朴,一...
    開(kāi)封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天兴喂,我揣著相機(jī)與錄音,去河邊找鬼焚志。 笑死衣迷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酱酬。 我是一名探鬼主播壶谒,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼膳沽!你這毒婦竟也來(lái)了佃迄?” 一聲冷哼從身側(cè)響起泼差,我...
    開(kāi)封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎呵俏,沒(méi)想到半個(gè)月后堆缘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡普碎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年吼肥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片麻车。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缀皱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出动猬,到底是詐尸還是另有隱情啤斗,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布赁咙,位于F島的核電站钮莲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏彼水。R本人自食惡果不足惜崔拥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凤覆。 院中可真熱鬧链瓦,春花似錦、人聲如沸盯桦。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拥峦。三九已至贴膘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間事镣,已是汗流浹背步鉴。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工揪胃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留璃哟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓喊递,卻偏偏與公主長(zhǎng)得像随闪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子骚勘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

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