概述
使用docker的好處就是盡量減少了環境部署,可靠性強,容易維護,我使用docker搭建wordpress的主要目標有下面幾個
首先我重新生成數據庫容器可以保證數據庫數據不丟失,重新生成wordpress容器保證wordpress網站數據不丟失,盡量讓兩個容器處于無狀態運行中,所有數據保存在本地,方便備份和恢復
mysql容器方面
首先我是在樹莓派上做這個實驗的,用的是別人做好的arm版本的mysql鏡像,其實和官方的mysql鏡像是一樣的,沒有任何區別,就是名字不一樣而已,生成容器的命令如下docker run --name mysql-wordpress -d -v /root/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="woyaoxuehuilinux" hypriot/rpi-mysql
解釋一下參數,--name就是給容器取名字。-d就是把它放在后臺運行,-v加上后面的目錄表示把容器中的/var/lib/mysql目錄和宿主機中的/root/mysql-data目錄做映射,把數據庫數據保存在本地,-e后面加的參數就是設置mysql的密碼,最后就是使用的鏡像的名字
wordpress容器方面
直接上運行參數docker run --name wordpress -d -p 80:80 --link mysql-wordpress:mysql -v /root/wordpress-html:/var/www/html wordpress
還是先解釋下參數--name就是給容器取名字,-d就是把容器放在后臺運行-p表示容器的80端口和宿主機的80端口做映射--link表示和剛才生成的mysql容器做連接,-v表示把網站的目錄和宿主機中的/root/wordpress-html做映射最后就是要使用的鏡像的名字了
測試
如果你pull完鏡像,并且執行了上面的運行命令之后,直接訪問主機的ip應該就是wordpress選擇語言安裝界面了,按照流程把wordpress安裝完成,然后我們發布一篇文章,接著我們停止并且刪除mysql容器docker stop mysql-wordpress
docker rm mysql-wordpress
之后訪問網站顯示Error establishing a database connection
就是表示連接不上數據庫了,這說明是正常的
之后我們重新云翔創建mysql容器時候的命令 docker run --name mysql-wordpress -d -v /root/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="woyaoxuehuilinux" hypriot/rpi-mysql
接著訪問網站,發現網站可以正常訪問
接著測試繼續,我們刪除數據庫容器和網站容器docker stop mysql-wordpress wordpress
docker rm mysql-wordpress wordpress
接著 訪問網站,此時網站肯定不能訪問,之后我們重新創建這兩個容器 docker run --name mysql-wordpress -d -v /root/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="woyaoxuehuilinux" hypriot/rpi-mysql
docker run --name wordpress -d -p 80:80 --link mysql-wordpress:mysql -v /root/wordpress-html:/var/www/html wordpress
然后訪問網站
見證奇跡的時刻
網站可以正常訪問,數據也沒有丟失
怎么備份網站?
從上面我們就可以總結出備份網站的步驟了,首先保存兩個執行容器的命令到一個文本文件,接著把mysql-data
和wordpress-html
打包備份就好了,容器的啟動時間只要幾秒鐘,所以如果你要做一個安全的網站架構你可以這么做,把上面我說的兩個目錄保存在存儲中,容器運行在服務器上,或者使用k8s去管理容器,當然存儲也是需要做備份的,這樣只要就可以保證服務的超級可靠性了。
歡迎關注Bboysoul的博客www.bboysoul.com
Have Fun