星期日, 1月 03, 2021

WordPress with container 練習小記

WordPress with container 練習小記


OS: openSUSE Leap 15.2 in Azure


今天來寫 WordPress 的練習文章

現在 WordPress 的使用率已經越來越高了, 今年的一些讀書計劃的內容內也有 WordPress 的規劃

首先就使用 container 的方式來進行練習.


規劃架構



  • 使用 openSUSE Leap 15.2 VM in Azure 作為 container host

  • 使用 container 方式執行 MySQL 與 WordPress

  • 建立獨立的 container network 給 WordPress 與 MySQL

    • 好處是可以使用名稱的方式連接

  • 建立 container volume web-data

    • 掛載 MySQL 的 /var/lib/mysql 以利後續維護與升級

  • 可以考慮另外建立獨立的 volume 來存放 WordPress 的 Plugin

在 Azure 內建立 openSUSE Leap 15.2 的 VM


SSH 連線虛擬機器, 並使用 > sudo su - 切換為管理者 root


啟動 docker 服務

# systemctl  start  docker


首先觀察主機上的 volume


# docker  volume  ls


DRIVER              VOLUME NAME


建立 volume

# docker  volume  create  web-data


web-data


觀察資訊

# docker  volume  ls


DRIVER              VOLUME NAME

local               web-data



# docker  volume  inspect  web-data


[

    {

        "CreatedAt": "2021-01-03T06:04:30Z",

        "Driver": "local",

        "Labels": {},

        "Mountpoint": "/var/lib/docker/volumes/web-data/_data",

        "Name": "web-data",

        "Options": {},

        "Scope": "local"

    }

]


  • 可以觀察 web-data 在本機上面的 mountpoint




一樣, 建立之前先觀察資訊


# docker  network  ls


NETWORK ID          NAME                DRIVER              SCOPE

0362ba8e433b        bridge              bridge              local

1e4986872739        host                host                local

0ac3b895fef7        none                null                local


建立 network


# docker  network  create  web-network


457bc7fc24f0b26796f32f5f3191853b9363a3a83e07044cf8d4fe5bd8a213fa


再次觀察資訊

# docker  network  ls


NETWORK ID          NAME                DRIVER              SCOPE

0362ba8e433b        bridge              bridge              local

1e4986872739        host                host                local

0ac3b895fef7        none                null                local

457bc7fc24f0        web-network         bridge              local


爲何要建立 network, 因為預設 bridge network 不能用名稱解析, 這樣會連接不到

可以參考官方的說明: Differences between user-defined bridges and the default bridge

  • https://docs.docker.com/network/bridge/

  • User-defined bridges provide automatic DNS resolution between containers

  • Containers on the default bridge network can only access each other by IP addresses, unless you use the --link option, which is considered legacy

另外一篇文章


開始佈署 MySQL


# docker  run  --name  web-mysql --network web-network -e  MYSQL_ROOT_PASSWORD=rootpassword  -e  MYSQL_DATABASE=wp  -e  MYSQL_USER=sakana  -e  MYSQL_PASSWORD=sakanapassword -d  mysql:5.7



開始佈署 WordPress

# docker  run  --name  web-wordpress  --network  web-network  -e  WORDPRESS_DB_HOST=web-mysql:3306 -e WORDPRESS_DB_NAME=wp  -e  WORDPRESS_DB_USER=sakana  -e  WORDPRESS_DB_PASSWORD=sakanapassword  -p  80:80  -d  wordpress


  • 因為只是實驗, 所以上面的相關密碼就用簡單的方式


如果要更安全的方式可以考慮使用 docker secret



進行測試

首先在 Azure 上的網路安全性群組, 先開放 port 80 可以存取



接下來連線 VM 的對外 IP

就會進入 WordPress 的安裝畫面

語系選繁體中文 -- > 繼續




輸入相關資訊

點選 安裝WordPress




大功告成

點選 登入



使用剛剛建立的帳號密碼

就可以進行登入



接下來就可以進入後台轉寫文章, 進行設定



或是觀察自己的第一個 WordPress 了




另外也有看到 docker-compose 安裝方式, 先放在下面, 以後再說

docker-compose 安裝


在 minikube 上架設 Stateless Wordpress




又離 WordPress 進了一步

~ enjoy it



Reference


沒有留言: