最后用Docker在服務(wù)器部署一個開源博客系統(tǒng)
首先現(xiàn)在網(wǎng)上下載jpress的包
解壓后編寫Dockerfile文件
接著docker build 制作鏡像铐伴,然后docker run運行鏡像。
接著我們訪問服務(wù)器8080端口(記得開放防火墻捆蜀,修改安全組)
由圖中看到答倡,jpress是可以成功訪問的轰传,但是jpress還依賴mysql,所以需要運行一個mysql容器瘪撇。
首先從鏡像中心下載一個mysql鏡像获茬。
在鏡像中心看到mysql鏡像啟動可選參數(shù)。
運行docker run命令倔既。
輸入docker ps命令查看容器運行情況恕曲,可以看到兩個容器都成功啟動。
接著我們訪問服務(wù)器的8080端口下的jpress渤涌,發(fā)現(xiàn)jpress已經(jīng)成功部署佩谣。
最后我們需要用域名訪問博客的話,還需要用nginx做一層代理轉(zhuǎn)發(fā)实蓬。
首先我們需要啟動nginx容器茸俭,然后進入容器內(nèi)部找到nginx配置文件的地址。發(fā)現(xiàn)它在/etc/nginx/conf.d內(nèi)
接著在服務(wù)器上創(chuàng)建一個conf.d文件夾安皱,生成一個default.conf文件调鬓,復(fù)制nginx容器內(nèi)部的default.conf文件的內(nèi)容,然后修改里面代理的路徑酌伊。
server_name修改成自己的域名腾窝,然后再location下加上一句proxy_pass讓nginx代理到宿主機ip的8080端口,這一步實現(xiàn)了nginx轉(zhuǎn)發(fā)請求到tomcat容器腺晾。
接著輸入sudo docker run -d -p 80:80 -v /develop/jpress/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf hub.c.163.com/library/nginx:latest命令啟動nginx容器燕锥,-v 參數(shù)表示把本地的文件掛載到容器內(nèi)部,這樣我們就不需要去到容器內(nèi)部修改配置文件悯蝉,只需要在本地修改配置文件归形。
容器啟動后,訪問服務(wù)器ip鼻由,由于我域名還沒有備案暇榴,所以我是用服務(wù)器ip訪問的,可以看到nginx成功轉(zhuǎn)發(fā)到了tomcat蕉世。
最后我們把代理轉(zhuǎn)發(fā)到tomcat容器里面的jpress蔼紧,繼續(xù)修改本地的default.conf文件,修改如下圖所示狠轻。
修改好了defau.conf文件之后奸例,我們繼續(xù)訪問服務(wù)器。
但是出現(xiàn)了一個問題,頁面的樣式失效了查吊,經(jīng)過排查之后發(fā)現(xiàn)谐区,原來是我沒有轉(zhuǎn)發(fā)js和css文件。
那么我們需要在nginx的配置文件上加上對js和css文件的轉(zhuǎn)發(fā)逻卖。
修改完配置文件之后重新啟動nginx容器宋列。
最后,我們?nèi)z查這次轉(zhuǎn)發(fā)是否正確评也,訪問服務(wù)器炼杖,發(fā)現(xiàn)這次代理轉(zhuǎn)發(fā)是成功的!
這從從0開始學(xué)習(xí)docker盗迟,了解了docker的原理坤邪,docker的優(yōu)勢,一步一步用docker去實現(xiàn)了博客的搭建罚缕,發(fā)現(xiàn)docker是真的非常好用罩扇,省去了非常多配置服務(wù)器環(huán)境的工作。只需要安裝一個docker怕磨,再從鏡像中心拉取別人打包好的鏡像,部署一個項目只需要幾行命令消约,真的由衷的覺得docker的設(shè)計者太厲害了肠鲫。