使用Docker部署MySQL+WordPress+phpMyAdmin

在前面的文章中我們示範了如何使用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中修改了密碼,後來的密碼是沒辦法直接套用,要先回到資料庫中修改原有的密碼設定才行喔。所以,建議大家一開始就先把密碼想好,再開始執行指令,這樣可以省去很多麻煩。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *