Docker Swarmを使用してWordPressを構築する方法

Docker Swarmを使用してWordPressを構築する方法

原因

かつて私は Vultr に WordPress を設定しましたが、よく知られている理由により、この場所へのアクセスがどんどん遅くなっていきました。その後、私はSina Cloudを選択しました。Sina Cloudは確かに安くて良いのですが、登録が必要で、コメント機能は削除される可能性があります。考えた後、あきらめて香港でホストを見つけてWordPressを構築することにしました。

ホスティングを購入する

私は Alibaba Cloud の軽量アプリケーション サーバーを選択しました。このホストの利点は、安価で十分なことです。
たとえば、私が選んだ香港のホストは、コア 1 つとメモリ 1 GB、ネットワーク速度 30 Mbps、ディスク容量 25 GB、月間トラフィック 1 TB で月額 24 ドルしかかかりません。

構成は以下のとおりです

Docker環境を初期化する

上記にはWordPressをインストールする機能もありますが、設定が古すぎるためお勧めしません。最終的にはUbuntu 18.04システムを選択しました。以下のコマンドでdockerをインストールし、docker swarmを直接初期化できます。

ubunut をインストールして、次のコマンドを実行します。

docker-compose を書く

構成の概要

バージョン: '3.7'

サービス:
 キャディー:
  画像: abiosoft/caddy
  ポート:
   - 80:80
   -443:443
  環境:
   - ACME_AGREE=true
   - TZ=アジア/上海
  ボリューム:
   - キャディ:/root/.キャディ
   - wp-src:/usr/src/wordpress
  構成:
   - 出典: wp_caddy
    ターゲット: /etc/Caddyfile
 アプリ:
  画像: wordpress:5.4.1-php7.2-fpm
  環境:
   TZ: アジア/上海
   WORDPRESS_DB_HOST: wp_db:3306
   WORDPRESS_DB_USER: ルート
   WORDPRESS_DB_PASSWORD: パスワード
   WORDPRESS_DB_NAME: ワードプレス
  依存:
   -db
  ボリューム:
   - wordpress:/var/www/html
   - wp-src:/usr/src/wordpress
 デシベル:
  イメージ:mysql:8
  環境:
   TZ: アジア/上海
   MYSQL_ROOT_PASSWORD: パスワード
   MYSQL_DATABASE: ワードプレス
  コマンド: --default-authentication-plugin=mysql_native_password
  ボリューム:
   -db:/var/lib/mysql

ボリューム:
 ワードプレス:
 デシベル:
 キャディー:
 ソース:
構成:
 wp_caddy:
  外部: 真

構成解析

キャディー

リバースプロキシとして使用し、https証明書の適用を考慮した構成は次のとおりです。

https://47log.com https://www.47log.com
  ルート /usr/src/wordpress
  圧縮
  高速cgi/wp_app:9000php
  書き換える {
    {path} が一致しない場合 ^\/wp-admin
    {path} へ {path}/ /index.php?_url={uri}
  }
  標準出力をログする
  エラー stderr
}

ここでは、docker swarm の config 機能を使用し、wp_caddy 構成に直接構成を書き込みました。

デシベル

ここでは、WordPress でサポートされており、パフォーマンスが優れている MySQL8 が使用されています。コマンドは、--default-authentication-plugin=mysql_native_password で追加する必要があることに注意してください。そうしないと、パスワード認証ができなくなります。私はこれを追加するのを忘れてしまい、しばらく苦労しました。

アプリ

接続方法に注意してください。docker スタックを使用してデプロイする場合は、デプロイの名前にプレフィックスを追加する必要があります。たとえば、ここでは docker stack deploy -c docker-compose.yml wp を使用し、docker ネットワーク内のデータベースのホストは wp_db です。スタック名が wordpress の場合は、それに応じて wordpress_db に変更する必要があります。

注: ボリュームの設定
- wordpress:/var/www/html これは設定する必要があります。前回はこれを設定していませんでした。コンテナを削除したらテーマが消えてしまいました。

dockerスタックを使用してデプロイする

コマンド1行docker stack deploy -c docker-compose.yml wpしばらく待つとWordPressに入ることができます

docker swarm を使用する理由。 portainer のおかげで、docker-swarm は portainer に接続した後、フル機能の設定機能を利用できるようになります。

Docker Swarm を使って WordPress を構築する方法についての記事はこれで終わりです。Docker Swarm を使って WordPress を構築する方法についての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker Swarm クラスタ管理の使用と原理の分析
  • Docker Swarm を使用して分散クローラー クラスターを構築する例
  • Docker Swarmを使用してクラスターを構築する方法
  • Docker 1.12 を使用してマルチホスト Docker Swarm クラスターを構築する詳細な説明
  • Docker をインストールして Docker Swarm モードで使用する方法
  • Docker swarm の簡単なチュートリアル

<<:  WiFi 開発 | WiFi ワイヤレス テクノロジーの紹介

>>:  ネイティブJSで様々なモーションの複合モーションを実現

推薦する

MySQL ディープ ページング (数千万のデータを素早くページ分割する方法)

目次序文場合最適化まとめ序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク ...

MySQL 8.0.12 のインストールと設定方法のグラフィックチュートリアル (Windows 版)

1. はじめにプロジェクトではMySQLを使用しています。インターネット上の例を参考にインストール...

ReactとAntdのFormコンポーネントを組み合わせてログイン機能を実装する方法を詳しく説明します

目次1. ReactとAntdを組み合わせてログイン機能を実現2. ReactとAntdを組み合わせ...

Dockerイメージを構築する2つの方法

目次既存のイメージからイメージを更新します。イメージを最初から構築する: Docker イメージ リ...

Docker MQTT のインストールと使用のチュートリアル

MQTT の紹介MQTT (Message Queuing Telemetry Transport)...

MySQL 最適化 Zabbix パーティション最適化

zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...

Linux での SELinux を理解する方法

目次1. SELinux の紹介2. SELinuxの基本概念2.1 仕事の種類2.2. セキュリテ...

Navicat Premier の MySQL へのリモート接続エラー 10038 の解決方法

MySQL へのリモート接続が失敗する場合は、次の理由が考えられます。 1. 若い男性/女性の方は、...

vue+drf+サードパーティのスライディング検証コードアクセスの実装

目次1. 背景2. 検証プロセス3. 検証を作成する4. フロントエンドコード4.1 コアjsファイ...

DockerとFastDFSのインストールコマンドと使い方の詳しい説明

Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...

ドラッグアンドドロップによる並べ替えの詳細を実現する js

目次1. はじめに2. 実装3. HTML ドラッグ アンド ドロップ API を使用しないのはなぜ...

一定期間の日ごと、時間ごとの統計データを取得するMySQLの詳しい説明

毎日の統計情報を取得するプロジェクトを実行する際、プロジェクト ログを分析する必要があります。要件の...

JavaScript 組み込みオブジェクトの概要

目次1. 組み込みオブジェクト2. 数学オブジェクト1. Mathオブジェクトの使用2. 指定された...

Vue+Echart 棒グラフで疫病データ統計を実現

目次1. まずプロジェクトにechartsをインストールします2. echartsに縦棒グラフテンプ...

ECMAScriptにおけるプリミティブ値と参照値の詳しい説明

目次序文動的プロパティとは何ですか?値のコピー値の種類を決定する要約する序文これは JavaScri...