使用docker的好處就是儘可能減小了環境部署,可靠性強,容易維護,我使用docker搭建wordpress的主要目標有下面幾個 首先我從新生成數據庫容器能夠保證數據庫數據不丟失,從新生成wordpress容器保證wordpress網站數據不丟失,儘可能讓兩個容器處於無狀態運行中,全部數據保存在本地,方便備份和恢復html
首先我是在樹莓派上作這個實驗的,用的是別人作好的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的密碼,最後就是使用的鏡像的名字mysql
直接上運行參數 docker run --name wordpress -d -p 80:80 --link mysql-wordpress:mysql -v /root/wordpress-html:/var/www/html wordpress
linux
仍是先解釋下參數--name就是給容器取名字,-d就是把容器放在後臺運行-p表示容器的80端口和宿主機的80端口作映射--link表示和剛纔生成的mysql容器作鏈接,-v表示把網站的目錄和宿主機中的/root/wordpress-html作映射最後就是要使用的鏡像的名字了sql
若是你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
而後訪問網站 見證奇蹟的時刻 網站能夠正常訪問,數據也沒有丟失docker
從上面咱們就能夠總結出備份網站的步驟了,首先保存兩個執行容器的命令到一個文本文件,接着把mysql-data
和wordpress-html
打包備份就行了,容器的啓動時間只要幾秒鐘,因此若是你要作一個安全的網站架構你能夠這麼作,把上面我說的兩個目錄保存在存儲中,容器運行在服務器上,或者使用k8s去管理容器,固然存儲也是須要作備份的,這樣只要就能夠保證服務的超級可靠性了。數據庫
歡迎關注Bboysoul的博客www.bboysoul.com Have Fun安全