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

推薦する

フレックスレイアウトとposition:absolute/fixedの競合の詳細な説明

以前、プロジェクトを開発しているときに、flex レイアウトと position:absolute/...

RR および RC 分離レベルでのインデックスとロックのテスト スクリプトのサンプル コード

基本概念現在の読み取りとスナップショットの読み取りMVCC では、読み取り操作はスナップショット読み...

MySQL OOM (メモリオーバーフロー) の解決策

OOM は「Out Of Memory」の略で、メモリオーバーフローを意味します。メモリ オーバーフ...

ウェブサイトを構築するときは、UTF-8 または GB2312 エンコードを使用する必要がありますか?

外国のウェブサイトを開くと文字化けした文字が表示されることが多く、また、英語以外の外国のウェブサイト...

PostgreSQL正規表現の一般的な機能の概要

PostgreSQL正規表現の一般的な機能の概要正規表現は、複雑なデータ処理を必要とするプログラムに...

Linux で SpringBoot jar プログラム デプロイメント シェル スクリプトを起動および停止する方法

では早速、コードをお見せしましょう。具体的なコードは次のとおりです。 #!/bin/bash cd ...

Nginx シグナル制御

Nginx の紹介Nginx は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...

MySQL 5.7.17 のインストールと使用方法のグラフィックチュートリアル

MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...

MySQL 8.0 の新機能 - 管理ポートの使用の概要

目次序文接続管理追加の接続管理ポート要約する序文皆さんの多くは、次のようなエラー メッセージに遭遇し...

Centos7 サーバーで jar パッケージ プロジェクトを開始する最良の方法

序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...

CSS3 で高さと幅を不定にして垂直と水平に中央揃えするいくつかの方法

1. フレックスレイアウト 。父親 { ディスプレイ: フレックス; コンテンツの中央揃え: 中央;...

Centos サーバーで nginx を設定する方法の例

セキュアターミナルMobaXterm_Personalをダウンロードまず、安全なターミナルをダウンロ...

H5でクリックされたときにaタグの背景色をキャンセルする方法

1. モバイル端末でクリックされたときにタグの青色を解除する { -webkit-tap-highl...

CocosCreatorでクールなレーダーチャートを描く方法

目次序文プレビュー文章グラフィックコンポーネントプロパティ機能グリッドを描く軸角度を計算するスケール...