EasyEngine on Cloud または VPS を使用して Docker で WordPress をセットアップする方法を簡単に説明します。
Docker はここ数年で目覚ましい成長を遂げており、現在も成長を続けています。スタートアップから企業に至るまで、あらゆる場所に存在します。

Docker には従来の VM に比べて優れた利点がいくつかありますが、この投稿はそれについて説明するものではありません。より深く学びたい場合は、この オンライン コース を受講することをお勧めします。
話題に戻ります…
Docker の利点を知っているか聞いたことがあるので、WordPress での使用を試してみたいと考えているはずです。技術的には、これを行う方法はたくさんありますが、作業を容易にする EasyEngine をチェックしてみましょう。
以下は Google Cloud でテストしましたが、技術的には、DigitalOcean、Linode、AWS、Alibaba Cloud などのクラウド ホスティングで動作するはずです。
Google Cloud インスタンスの準備ができました。

そして、rootとしてログインします

EasyEngine は、WordPress サイトを作成するサーバーにインストールする必要がある自動スクリプトです。それでは、次のコマンドを使用してインストールしましょう。
注 : EasyEngine は CentOS ではまだ動作しないため、Debian または Ubuntu を使用する必要があります。
wget -qO ee rt.cx/ee4 && sudo bash ee
Docker などの必要なコンポーネントのインストールには数分かかります。プロンプトに戻る前に、次の情報が表示されます。
Status: Downloaded newer image for easyengine/redis:v4.0.0
+-------------------+----------------------------------------------------------------------------------+
| OS | Linux 4.15.0-1025-gcp #26~16.04.1-Ubuntu SMP Wed Nov 21 10:13:20 UTC 2018 x86_64 |
| Shell | /bin/bash |
| PHP binary | /usr/bin/php7.2 |
| PHP version | 7.2.13-1+ubuntu16.04.1+deb.sury.org+1 |
| php.ini used | /etc/php/7.2/cli/php.ini |
| EE root dir | phar://ee.phar |
| EE vendor dir | phar://ee.phar/vendor |
| EE phar path | /root |
| EE packages dir | |
| EE global config | |
| EE project config | |
| EE version | 4.0.6 |
+-------------------+----------------------------------------------------------------------------------+
-----> Run "ee help site" for more information on how to create a site.
これは、EasyEngine がインストールされ、サイトの作成に使用できる状態になったことを意味します。要件に応じて、作成できるサイトの種類は複数あります。
元:
- ただのHTMLサイト
- キャッシュや追加機能のない WordPress サイト
- データベースを備えた PHP ベースのサイトを作成する
- 自己署名または Let’s encrypt SSL 証明書を使用するサイト
- マルチサイトの WordPress サイト
- サブドメインまたはサブディレクトリ上の WP サイト
- Redis キャッシュを備えた WP サイト
ご存知のとおり、複数の組み合わせが可能であり、いつでも 公式ドキュメント を参照できます。ここでは、 Redis を使用して WP サイト を作成しましょう。
ee site create lab.com --type=wp --cache
上記では、EasyEngine に lab.com の WP サイトを作成してキャッシュを使用するように依頼しています。数秒かかりますが、以下のような成功の確認が表示されます。
root@-lab:~# ee site create lab.com --type=wp --cache
Configuring project.
Creating WordPress site lab.com
Copying configuration files.
Starting site's services.
Downloading and configuring WordPress.
Success: Host entry successfully added.
Checking and verifying site-up status. This may take some time.
Installing WordPress site.
Success: http://lab.com has been created successfully!
Site entry created.
Creating cron entry
Success: Cron created successfully
+--------------------+----------------------------------------+
| Site | http://lab.com |
+--------------------+----------------------------------------+
| Site Root | /opt/easyengine/sites/lab.com |
+--------------------+----------------------------------------+
| Site Title | lab.com |
+--------------------+----------------------------------------+
| WordPress Username | stupefied-margulis |
+--------------------+----------------------------------------+
| WordPress Password | xxxxxxxxxxxx |
+--------------------+----------------------------------------+
| DB Host | global-db |
+--------------------+----------------------------------------+
| DB Name | lab_com |
+--------------------+----------------------------------------+
| DB User | lab.com-bNmEbX |
+--------------------+----------------------------------------+
| DB Password | xxxxxxxxxxxx |
+--------------------+----------------------------------------+
| E-Mail | admin@lab.com |
+--------------------+----------------------------------------+
| SSL | Not Enabled |
+--------------------+----------------------------------------+
| Cache | Enabled |
+--------------------+----------------------------------------+
root@-lab:~#
サイトをクラウド上で立ち上げて実行するのがいかに速いかわかりますか?

素晴らしい!
どのようなキャッシュメカニズムが使用されているかを確認してみましょう。

ご覧のとおり、WP Redis はサイトの作成とともにインストールされます。
WP は Docker 内で実行されていますが、すべてが EasyEngine スクリプトによって管理されるため、何もする必要はありません。ほとんどの場合、
ee
スクリプトを操作することになります。ただし、Docker 内で実行されているサービスを調べたい場合は、以下をチェックしてください。
Docker 内のプロセス
docker ps
実行すると、実行中のサービスがすべて表示されます。
root@-lab:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6f16b878d548 easyengine/cron:v4.0.0 "/usr/bin/ofelia dae…" 23 minutes ago Up 23 minutes ee-cron-scheduler
18b7d9b4b8ac easyengine/nginx:v4.0.0 "/usr/bin/openresty …" 24 minutes ago Up 24 minutes 80/tcp labcom_nginx_1
5e36d6998bba easyengine/postfix:v4.0.0 "postfix start-fg" 24 minutes ago Up 24 minutes 25/tcp labcom_postfix_1
9fba9f5a2c77 easyengine/php:v4.0.0 "docker-entrypoint.s…" 24 minutes ago Up 24 minutes 9000/tcp labcom_php_1
d022dd6635d3 easyengine/mariadb:v4.0.0 "docker-entrypoint.s…" 24 minutes ago Up 24 minutes 3306/tcp ee-global-db
5c29ba40fa06 easyengine/redis:v4.0.0 "docker-entrypoint.s…" 24 minutes ago Up 24 minutes 6379/tcp ee-global-redis
cae69382b545 easyengine/nginx-proxy:v4.0.1 "/app/docker-entrypo…" 15 hours ago Up 35 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp ee-global-nginx-proxy
ご覧のとおり、Nginx、PHP、MariaDB、Redis、Nginx などはすべて Docker 内で実行されています。
メモリ、IO、CPU の統計
docker stats
リアルタイムの使用率統計を提供します
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6f16b878d548 ee-cron-scheduler 0.10% 6.246MiB / 1.65GiB 0.37% 1.82kB / 0B 582kB / 0B 7
18b7d9b4b8ac labcom_nginx_1 0.00% 4.316MiB / 1.65GiB 0.26% 3.94MB / 3.74MB 0B / 0B 2
5e36d6998bba labcom_postfix_1 0.00% 4.59MiB / 1.65GiB 0.27% 2.32kB / 688B 3MB / 0B 4
9fba9f5a2c77 labcom_php_1 0.00% 12.86MiB / 1.65GiB 0.76% 38.4MB / 7.11MB 18.3MB / 180kB 1
d022dd6635d3 ee-global-db 0.05% 97.02MiB / 1.65GiB 5.74% 1.71MB / 1.75MB 59.7MB / 98.8MB 32
5c29ba40fa06 ee-global-redis 0.12% 2.48MiB / 1.65GiB 0.15% 3.31MB / 23.1MB 7.11MB / 0B 4
cae69382b545 ee-global-nginx-proxy 0.11% 8.988MiB / 1.65GiB 0.53% 2.95MB / 3.2MB 23.2MB / 53.2kB 19
ログの場所
トラブルシューティングのためにログを時々確認する必要があることを理解しています。ここで見つけることができます。
Nginx と PHP – /opt/easyengine/sites/$SITENAME/logs
EE はよく構成されているので、さらに詳しく知りたい場合は、 ハンドブックを 確認することをお勧めします。 Docker 内で WordPress を実行するのは簡単になりました。
WPサーバー、最適化、セキュリティを自分で管理したくない場合は、すべてを代わって処理してくれるKinstaを試してみると、本業に集中できるようになります。