1. nas上的docker安裝就不多說了,直接點開【套件中心】->【Docker】中下載並安裝
2. 打開界面或命令行先拉取一個mysql5.7的鏡像:
sudo docker pull mysql:5.7
3. 再從wordpress的dockerhub上拉取博客源碼鏡像:
sudo docker pull workpress:latest
wordpress數據存儲依賴mysql數據庫,以docker容器方式部署完整的wordpress博客服務,則需要從鏡像倉庫拉取mysql、wordpress鏡像,這裏選擇從開源的docker hub 獲取mysql 5.7版本,wordpress latest版本,同時需要準備一臺具備外網環境的機器,硬件配置最好1C2G以上,當然1C1G也是沒有問題的。
4. 啓動數據庫服務:
sudo docker run -dit --name mysql-db -p 3306:3306 -v /var/services/homes/yine/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7 /bin/bash
mysql容器的名字爲mysql-db,數據庫文件則保存在當前機器的xxx/data/mysql目錄下,-e MYSQL_ROOT_PASSWORD以環境變量的方式設置mysql的數據庫密碼爲root,用戶名默認root,可以通過注入環境變量修改,更多參數設置請參考docker hub。命令執行成功之後,利用docker ps查詢容器是否成功啓動, 如果未啓動成功,注意要修改/root/yine/data/mysql 目錄的執行權限。
5. 可以定期對數據進行備份,當然除了以數據庫文件作爲備份之外,還可以通過執行msyql命令備份sql腳本數據。
sudo docker exec mysql-db sh -c 'exec mysqldump --databases wordpress -uroot -proot' > wordpress.sql
6. 數據庫成功啓動之後,再啓動wordpress容器服務:
sudo docker run -v /var/services/homes/yine/data/wordpress/wp-content:/var/www/html/wp-content --name my-wordpress --link mysql-db:db -p 9090:80 -d wordpress
在XXX/data/wordpress/wp-content目錄下修改文件內容,可以馬上在服務中體現,非常方便,–link 表示關聯了mysql-db容器,那麼在my-wordpress容器中可以通過db直接訪問mysql-db,可以進入my-wordpress容器查看–link增加了hosts記錄。-p指定了容器的端口映射,當前wordpress的服務通過當前機器的9090端口即可訪問。
yine@zerostudio:~$ sudo docker exec -it my-wordpress sh
# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 db ed46aac6d374 mysql-db
172.17.0.3 8b56cbaa5298
7. 配置wordpress
現在通過瀏覽器直接訪問 http://ip:9090/ ,比如當前服務器的ip爲192.168.2.100,那麼直接訪問 http://192.168.2.100:9090/ 即可訪問wordpress,然後跳轉到管理員配置頁面。
注意 databaseName需手動創建, 因爲啓動wordpress容器時做了和mysql的--link容器關聯操作,所以Database Host可以填寫關聯別名db.
root@f2708102507e:/# mysql -h db -u root -proot
ERROR 1130 (HY000): Host '172.17.0.4' is not allowed to connect to this MySQL server
root@f2708102507e:/#
root@f2708102507e:/#
root@f2708102507e:/# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 db ed46aac6d374 mysql-db
172.17.0.4 f2708102507e
當出現不允許連接時,需要做如下操作,先從mysql-server容器登錄進去, 做如下操作:
root@ed46aac6d374:/var/lib/mysql# mysql -u root -proot
mysql> use mysql;
Database changed
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select host, user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
3 rows in set (0.00 sec)
然後後邊的操作就不用多說了, 到此結束!