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 結合バッファの原理

目次1. MySQL 結合バッファ2. JoinBufferCacheストレージスペースの割り当て3...

Windows 10 インストール vmware14 チュートリアル図

ソフトウェアのダウンロードソフトウェアのダウンロード リンク: https://pan.baidu....

MySQL バックアップ スクリプトの書き方

序文:データベースのバックアップの重要性は、特にデータの損失が深刻な結果を招く可能性がある実稼働環境...

2008 年の Web デザインにおける 10 の経験

<br />インターネットは絶えず変化しており、BusinessWeek.com は専門...

ウェブページ HTML 順序付きリスト ol と順序なしリスト ul

データを整理するためのリストWeb ページの表示を制御する多数の HTML タグを学習した後、読者は...

MySQLの自己接続と結合の詳細な理解

1. MySQL 自己接続MySQL では、情報を照会するときに自分自身に接続 (自己接続) する必...

Linux システム (CentOS7 インストール) に JDK8 をインストールするための詳細なチュートリアル

JDKのインストールシステムのインストールについてはあまり詳しく説明しません。インストール手順はオン...

ネイティブJSで実装されたギャラリー機能

目次最初2番目Native Js はギャラリー機能を実装します。画像をクリックすると、対応する拡大画...

MySQL のレイテンシ問題とデータフラッシュ戦略プロセスの分析

目次1. MySQLレプリケーションプロセス2. MySQLの遅延問題の分析3. プロモーション期間...

CSS 属性を使用してマウス イベントをブロックする方法 (マウス クリックは上位の要素を貫通する可能性があります)

由来: 数日前、テスターから写真を見るという要件が送られてきました。 この要件を見たとき、私は少し混...

js キャンバスで円形の水のアニメーションを実現

この記事の例では、円形の水のアニメーションを実現するためのキャンバスの具体的なコードを参考までに共有...

WeChatアプレットは日付と時刻に基づいた並べ替え機能を実装

最近、小さなプログラム プロジェクトを引き継いだのですが、リストを日付と時刻で並べ替えるという要件が...

Vueのref属性の詳細な説明

要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS....

Kubernetesでポッドを作成する方法

目次ポッドを作成するには? kubectl ツールポッドを作成するには?前回の記事では、コンテナとポ...

Vue はフォームデータ検証のサンプルコードを実装します

el-form フォームにルールを追加します。データにルールを定義する定義されたルールをel-for...