怎么使用Docker Swarm搭建WordPress

下面由WordPress教程欄目給大家介紹使用 docker swarm 搭建 wordpress的方法,希望對需要的朋友有所幫助!

怎么使用Docker Swarm搭建WordPress

起因

我曾經把 wordpress 搭建在 Vultr 上,但是因為眾所周知的原因,這個地方訪問越來越慢。再后來我選擇了新浪云,新浪云的確夠便宜,也很不錯,但是要備案,還有評論功能估計要閹割,想想還是算了,找個香港的主機搭建 wordpress 即可。

購買主機

我這里選擇的是阿里云的輕量應用服務器,這個主機的好處就是便宜,夠用。
比如我選擇的香港的主機,一個月只需要 24 塊錢,一核心一G內存,網速為 30Mbps,磁盤空間 25GB,月流量 1TB。

配置如下圖
怎么使用Docker Swarm搭建WordPress

初始化 docker 環境

雖然上面有一件安裝wordpress的功能,但是我不推薦,因為配置都太老了

最終我選擇的是 ubuntu18.04 系統,直接用下面的命令即可完成安裝 docker 并且初始化 docker swarm

curl -o- -L https://gist.githubusercontent.com/hangox/e679464f35dc2a78920e6249a21d7958/raw/c5541e38979dca1e3e1e9704ad171ed2f0556fa1/ubunut-install-docker.sh | bash

編寫 docker-compose

配置一覽

version: '3.7'  services:   caddy:     image: abiosoft/caddy     ports:       - 80:80       - 443:443     environment:       - ACME_AGREE=true       - TZ=Asia/Shanghai     volumes:       - caddy:/root/.caddy       - wp-src:/usr/src/wordpress     configs:       - source: wp_caddy         target: /etc/Caddyfile   app:     image: wordpress:5.4.1-php7.2-fpm     environment:       TZ: Asia/Shanghai       WORDPRESS_DB_HOST: wp_db:3306       WORDPRESS_DB_USER: root       WORDPRESS_DB_PASSWORD: yourpassword       WORDPRESS_DB_NAME: wordpress     depends_on:       - db     volumes:       - wordpress:/var/www/html       - wp-src:/usr/src/wordpress   db:     image: mysql:8     environment:       TZ: Asia/Shanghai       MYSQL_ROOT_PASSWORD: yourpassword       MYSQL_DATABASE: wordpress     command: --default-authentication-plugin=mysql_native_password     volumes:       - db:/var/lib/mysql  volumes:   wordpress:   db:   caddy:   wp-src: configs:   wp_caddy:     external: true

配置解析

caddy

用來做反向代理,同時兼顧 https 證書申請,配置如下

https://47log.com  https://www.47log.com  {     root /usr/src/wordpress     gzip     fastcgi / wp_app:9000 php     rewrite {         if {path} not_match ^/wp-admin         to {path} {path}/ /index.php?_url={uri}     }     log stdout     errors stderr }

這里我用到了 docker swarm 的 config 功能,直接把配置寫入到 wp_caddy 這個配置中。

db

這里用的是 mysql8 , wordpress 是支持的,性能也要更好點
需要注意的,commmand 必須加上 command: –default-authentication-plugin=mysql_native_password 不然是沒辦法進行密碼認證的,我就是忘記加這個蛋疼了一陣子。

app

注意連接方式
如果你是用 docker stack 部署的,部署的是什么名字,數據庫連接那里就要加上名字的前綴。比如我這里是 docker stack deploy -c docker-compose.yml wp,我這里數據庫在 docker 網絡中的 host 就是 wp_db。如果你的 stack 名字為 wordpress , 就要對應的改為 wordpress_db。

注意配置 volume
– wordpress:/var/www/html 這個東西一定要配置,上次我就是沒有配置這個東西,刪掉 container,主題直接沒有了。

使用 docker stack 部署

一行命令 docker stack deploy -c docker-compose.yml wp 等一段時間就能進入 wordpress 了

為什么使用 docker swarm。 因為有 portainer , docker-swarm 接入到 portainer 之后可以有全功能的配置能力。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享