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で様々なモーションの複合モーションを実現

推薦する

Javascriptの基本ループの詳しい説明

目次サイクルのために入室のためのその間しながら行うループから抜け出す要約するサイクルのためにループは...

InnoDB がトランザクション分離レベルを巧みに実装する方法

序文前回の記事「MySQL ロック メカニズムの詳細説明」では、InnoDB のロック メカニズムに...

vue-cli4.5.xはプロジェクトを素早く構築します

1. vue-cliをインストールする vue.js で vue.js を実行します。 2. プロジ...

内部 IP アクセスのみを許可する Nginx プロキシ設定を追加する方法

位置 / { インデックス index.jsp; proxy_next_upstream http...

Vue-Routerのインストールと使用方法の詳細な説明

目次インストールルーティングの基本構成Vue にルーターをインストールするルーターの設定Router...

js でクラスセレクターと名前属性セレクターを実装する手順の例

jQuery の登場により、DOM の操作効率が大幅に向上し、開発がより高いレベルに引き上げられまし...

複数のネットワークカードを備えた Linux システムでのルーティング構成の詳細な説明

Linux でのルーティング設定コマンド1. ホストルーティングを追加する ルートを追加 -host...

将来最も成功する企業はテクノロジー企業でしょうか、それともデザイン企業でしょうか?

ムーアの法則はもはや適用されない2004年にフレックストロニクスがフロッグデザインを買収したのを皮切...

Linux でリモートから MySQL を自動的にバックアップする方法

序文:基本的に、自社で使用する場合でも、顧客向けにサーバーを展開する場合でも、MySQL のバックア...

MySQL マスタースレーブ同期における server-id の例の詳細な説明

序文MySQL クラスターを構築する場合、当然のことながら、データの一貫性を確保するために、データベ...

Tomcatサーバーのセキュリティ設定方法

Tomcat は、Java Community Process を通じて Sun が開発した、広く使...

Vue で ToDo アプリケーションを実装する例

背景まず最初に、私はフロントエンド開発の専門家ではないことを述べておきたいと思います。私の以前のコン...

Vueデータ監視の原理の詳細な説明

<本文> <div id="ルート"> <h1&...

枠線や境界線のない iframe を使用するための完全ガイド (実践経験のまとめ)

<iframe src=”ページのURL” width=”100″ height=”30″ f...

jsはCanvasを使用して複数の画像を1つの実装コードにマージします

解決 関数 mergeImgs(リスト) { const imgDom = document.cre...