在前面的文章中我們示範了如何使用docker-compose指令部署MySQL加上WordPress,讓我們可以很容易地在任何一台電腦或伺服器上把WordPress快速架起來,但是,只有WordPress對於有時候要進行資料庫管理的站長來說並不太方便。因此,在這篇文章中,我們再來寫一段docker-compose.yml,把phpMyAdmin也加上去。
在這裡我們以Windows作業系統為例,當然,在作業系統中,一開始的Docker Desktop for Windows是一定要先安裝好的。請建立一個資料夾,然後在該資料夾中建立一個叫做docker-compose.yml的檔案,其檔案的內容如下:
version: '3.9'
services:
db:
image: mysql:latest
volumes:
- ./mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 12345678
MYSQL_DATABASE: wpdb
MYSQL_USER: wpadmin
MYSQL_PASSWORD: 12345678
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
volumes:
- ./wp:/var/www/html
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpadmin
WORDPRESS_DB_PASSWORD: 12345678
WORDPRESS_DB_NAME: wpdb
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin:latest
ports:
- "8081:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: 12345678
在這個檔案中,我們使用目前資料夾底下的mysql資料夾對應到MySQL的資料庫檔案,使用wp資料夾對應到WordPress的資料檔案。至於phpMyAdmin的帳號則是root,密碼則是12345678。請使用以下的指令執行服務的部署:
docker-compose up -d
以下是實際執行的訊息:
D:\wordpress> docker-compose up -d
[+] Running 4/4
- Network wordpress_default Created 0.8s
- Container wordpress-db-1 Started 1.3s
- Container wordpress-phpmyadmin-1 Started 3.3s
- Container wordpress-wordpress-1 Started
這時候,我們的WordPress的網站就會被開在埠號8080,而phpMyAdmin則被開在埠號8081。當服務被順利啟用之後,以這個例子,在D:\wordpress資料夾底下就會多了兩個資料夾,使用dir指令的檢視結果如下:
PS D:\wordpress> dir
Directory: D:\wordpress
Mode LastWriteTime Length Name
---- ------------- ------ ----
da---- 2023/11/10 下午 04:56 mysql
da---- 2023/11/10 下午 04:57 wp
-a---- 2023/11/10 下午 04:41 789 docker-compose.yml
如果不想使用這個服務,則可以使用docker-compose down,執行之訊息如下:
PS D:\wordpress> docker-compose down
[+] Running 4/4
- Container wordpress-phpmyadmin-1 Removed 1.7s
- Container wordpress-wordpress-1 Removed 1.7s
- Container wordpress-db-1 Removed 1.5s
- Network wordpress_default Removed
由於所有的資料都被放在mysql和wp資料夾之下,所以下次重新啟用伺服器時,所有之前建立過的設定都還會被保留下來。如果你想要把網站搬到別台機器,也只要把這些檔案通通複製過去,再到那台機器上執行一次docker-compose up -d 這個指令就可以了。
特別要留意的地方是,如果你已經執行過指令,後來又在docker-compose.yml中修改了密碼,後來的密碼是沒辦法直接套用,要先回到資料庫中修改原有的密碼設定才行喔。所以,建議大家一開始就先把密碼想好,再開始執行指令,這樣可以省去很多麻煩。