最后用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開始學習docker,了解了docker的原理,docker的優(yōu)勢,一步一步用docker去實現(xiàn)了博客的搭建,發(fā)現(xiàn)docker是真的非常好用,省去了非常多配置服務(wù)器環(huán)境的工作。只需要安裝一個docker,再從鏡像中心拉取別人打包好的鏡像,部署一個項目只需要幾行命令,真的由衷的覺得docker的設(shè)計者太厲害了。