當前位置:
首頁 > 最新 > 使用Docker運行常見的Web服務與管理

使用Docker運行常見的Web服務與管理

APACHE

Apache是一個高穩定的、商業級別的開源Web伺服器;由於其良好的跨平台和安全性,被廣泛應用在多種平台和操作系統上。

1、使用官方鏡像

官方提供名為httpd的Apache鏡像,可以作為基礎的Web服務鏡像。

編寫Dockerfile文件;

創建項目目錄public-html,並在目錄中創建index.html文件:

構建自定義鏡像:

可以看到已構建成功,然後使用docker run指令運行鏡像:

使用瀏覽器通過本地80埠訪問:

返回容器查看,每訪問一次,就會有一次記錄顯示:

此外,還可以不創建自定義鏡像,直接通過映射目錄方式運行Apache容器:

2、使用自定義鏡像

創建一個apache_ubuntu工作目錄,在其中創建Dockerfile文件、run.sh文件和sample目錄:

編寫Dockerfile文件:

在sample目錄下創建index.html文件:

編寫run.sh啟動apache服務腳本:

然後使用docker bulid創建apache:ubuntu鏡像,注意最後的」.「:

創建成功:

接下來使用docker run命令測試,使用-P參數映射需要開放的埠(22和80埠):

使用瀏覽器訪問剛創建的samlpe站點:

以上使用docker ps -a發現容器映射埠為22和80;實際上,使用SSH是無法遠程登錄的;這是因為在run.sh腳本中並未啟動SSH服務;說明:使用Dockerfile創建鏡像是,會繼承父鏡像的開放埠,但不會繼承啟動命令。因此需要在run.sh腳本中添加啟動sshd的服務的命令:

再次創建鏡像:默認就會同時啟動SSH和Apache服務。

NGINX

Nginx是一款功能強大的開源反向代理,支持HTTP、HTTPS、SMTP、POP3、IMAP等協議。也可以作為負載均衡器、HTTP緩存和Web伺服器。Nginx一開始就專註於高並發和高性能的應用場景。

1、使用官方鏡像:

然後是使用docker ps指令查看當前運行的容器:

可以看到Nginx容器一在0.0.0.0:80啟動,並映射了80埠,可以用瀏覽器訪問此地址:可以看到Nginx輸出的頁面

2、自定義Web頁面:

同樣的,創建index.html文件,並將index.html文件掛載至容器中,即可以看到顯示的自定義和頁面:

也可以使用Dockerfile來構建新鏡像;Dockerfile內容如下:

開始構建nginx鏡像:

構建成功後執行docker run指令啟動一個容器:

使用瀏覽器訪問:

TOMCAT

Tomcat本身內含了一個HTTP伺服器,也可以當做一個單獨的Web伺服器來使用。

首先,在Docker Hub上搜索已有的Tomcat相關鏡像的個數:

已經有26個相關鏡像。

創建tomcat鏡像並啟動容器:直接運行官方鏡像

出現以下情況:

說明IPv4轉發是禁用的,網路沒有啟動;

解決辦法:

在此文件內添加這一行,然後重啟網路;刪除剛才容器,再創建即可:

LAMP

LAMP(Linux-Apache-Mysql-PHP)是目前流行的web工具,其中包括:Linux操作系統,Apache網路伺服器,Mysql資料庫,perl、PHP或者Python變成語言。可以使用自定義Dockerfile或者Compose方式運行LAMP,同時社區也提供了十分成熟的linode/lamp和tutum/lamp鏡像。

使用linode/lamp鏡像

首先,執行docker run指令,直接運行鏡像,並進入容器內部bash shell:

在容器內部shell啟動apache以及mysql服務:

此時鏡像中apache、mysql服務已經啟動,可使用docker ps查看運行中的容器:

可以通過瀏覽器訪問本地80埠即可查看到默認頁面:

CMS

內容管理系統(Content Management System,CMS)指的是提供內容編輯服務的平台程序;可以讓不懂編程的用戶方便又輕鬆地發布、更改和管理各類數字內容(主要以文本和圖像為主)。

1、WordPress

wordpress是風靡全球的開源內容管理系統,是博客、企業官網、產品首頁等內容相關平台的主流實現方案之一,主要基於PHP和Mysql,架構設計簡單明了,支持主題,插件和各種功能模塊。

使用官方鏡像

通過Docker Hub下載官方wordpress和mysql鏡像:

配置Mysql:

從Docker中安裝MySQL,還需要額外的配置來啟動MySQL;

配置Wordpress:

安裝好資料庫之後,就可以啟動WordPress了;參數指定要啟動的WordPress實例名稱,參數指定要使用的Docker MySQL實例名稱,參數將Docker內部的80埠映射到本地的8080埠上

使用docker ps查看容器啟動:

然後打開瀏覽器,輸入(埠號是命令中設置的),就可以看到WordPress了。按照提示輸入用戶名等信息,然後安裝WordPress即可:

2、Ghost

Ghost是一個廣受歡迎的開源博客平台,使用JavaScript編寫,以MIT協議發布。使用Docker Hub提供的官方Ghost鏡像,直接docker run指令運行:

已經啟動容器,內含Ghost實例並監聽默認的2368服務埠;然後對服務埠進行映射:

並使用瀏覽器指定埠訪問:

還可以掛載已有的內容到Ghost容器內:

持續開發與管理

持續集成特點包括:從檢出代碼、編譯安裝、運行測試、結果記錄、測試統計等都是自動完成,減少人工干預。

持續交付:則是經典的敏捷軟體開發方法的自然延伸,它強調產品在修改後到部署上線的流程要敏捷化、自動化。

Jenkins

jenkins是一個得到廣泛應用的持續集成和持續交付的工具,旨在提供一個開放易用的持續集成平台,可以實時監控集成中存在的錯誤,提供詳細的日誌文件和提醒功能,並用圖表的形式形象地展示項目架構的趨勢和穩定性;特點包括安裝配置簡單、支持詳細的測試報表、分散式構建等。

使用docker run指令一鍵部署Jenkins服務:

Jenkins容器啟動後,可以打開瀏覽器訪問8080埠,查看Jenkins管理界面:輸入密碼登錄即可

目前運行的容器中,數據會存儲在工作目錄/var/jenkins_home中,這包括Jenkins中所有的數據,包括插件和配置信息等。如果需要數據持久化,可以使用數據卷機制:

以上指令會將Jenkins數據存儲於宿主機的/your/home目錄下(需要確保/your/home目錄對於容器的Jenkins用戶是可訪問的)也可以使用數據卷:

Gitlab

是一款非常強大的開源源碼管理系統。支持基於Git的源碼管理、代碼評審、issue跟蹤、活動管理、wiki頁面,持續集成和測試等功能。

使用docker run指令運行:

成功運行鏡像,打開瀏覽器訪問即可。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Docker技術與開發 的精彩文章:

TAG:Docker技術與開發 |