Un aperçu rapide de la configuration de WordPress dans Docker à l'aide d'EasyEngine on Cloud ou VPS.
Docker a une excellente croissance au cours des dernières années et continue de croître. Il est partout - de la startup à l'entreprise.

Docker a obtenu certains des avantages intéressants par rapport aux machines virtuelles traditionnelles, mais cet article n'est pas pour en parler. Si vous souhaitez apprendre en profondeur, je vous recommande de suivre ceci Cours en ligne.
Retour au sujet…
Vous connaissez donc ou avez entendu les avantages de Docker et souhaitez essayer d'utiliser pour WordPress. Techniquement, il existe de nombreuses façons de le faire, mais voyons EasyEngine qui facilitent la vie.
J'ai fait des tests sur Google Cloud, mais techniquement, cela devrait fonctionner sur n'importe quel hébergement cloud comme DigitalOcean, Linode, AWS, Alibaba Nuage.
Mon instance Google Cloud est prête.

et, connecté en tant que root

EasyEngine est un script automatisé qui doit être installé sur le serveur sur lequel vous souhaitez créer un site WordPress. Alors faisons-le installer avec les commandes suivantes.
Notez les: EasyEngine ne fonctionne pas encore sur CentOS, vous devez donc utiliser Debian ou Ubuntu.
wget -qO ee rt.cx/ee4 && sudo bash ee
L'installation des composants nécessaires, y compris Docker, prendra quelques minutes et vous devriez voir les informations suivantes avant de revenir à l'invite.
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.
Cela signifie qu'EasyEngine est installé et prêt à être utilisé pour créer un site. Cela dépend des besoins et il existe plusieurs types de sites que vous pouvez créer.
Ex:
- Juste un site HTML
- Site WordPress sans mise en cache ni fonctionnalités supplémentaires
- Créer un site PHP avec une base de données
- Un site avec l'auto-signature ou chiffrons le certificat SSL
- Sites WordPress multi-sites
- Site WP sur sous-domaine ou sous-répertoire
- Site WP avec cache Redis
Vous voyez, il existe plusieurs possibilités de combinaisons et vous pouvez toujours vous référer à leur documentation officielle. Pour l'instant, créons un Site WP avec Redis.
ee site create geekflarelab.com --type=wp --cache
Ci-dessus, je demande à EasyEngine de créer un site WP pour geekflarelab.com et d'utiliser un cache. Cela prendra quelques secondes et vous devriez voir une confirmation de réussite comme ci-dessous.
root@geekflare-lab:~# ee site create geekflarelab.com --type=wp --cache
Configuring project.
Creating WordPress site geekflarelab.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://geekflarelab.com has been created successfully!
Site entry created.
Creating cron entry
Success: Cron created successfully
+--------------------+----------------------------------------+
| Site | http://geekflarelab.com |
+--------------------+----------------------------------------+
| Site Root | /opt/easyengine/sites/geekflarelab.com |
+--------------------+----------------------------------------+
| Site Title | geekflarelab.com |
+--------------------+----------------------------------------+
| WordPress Username | stupefied-margulis |
+--------------------+----------------------------------------+
| WordPress Password | xxxxxxxxxxxx |
+--------------------+----------------------------------------+
| DB Host | global-db |
+--------------------+----------------------------------------+
| DB Name | geekflarelab_com |
+--------------------+----------------------------------------+
| DB User | geekflarelab.com-bNmEbX |
+--------------------+----------------------------------------+
| DB Password | xxxxxxxxxxxx |
+--------------------+----------------------------------------+
| E-Mail | admin@geekflarelab.com |
+--------------------+----------------------------------------+
| SSL | Not Enabled |
+--------------------+----------------------------------------+
| Cache | Enabled |
+--------------------+----------------------------------------+
root@geekflare-lab:~#
Vous voyez à quelle vitesse il est nécessaire de rendre votre site opérationnel sur le cloud?

Génial!
Vérifions quel mécanisme de mise en cache est utilisé.

et, comme vous pouvez le voir, WP Redis est installé avec la création du site.
WP fonctionne dans le docker, mais vous n'avez rien à faire car tout est géré par des scripts EasyEngine. La plupart du temps, vous interagiriez avec ee
scripts. Cependant, si vous souhaitez explorer les services exécutés dans le docker, vous pouvez vérifier ce qui suit.
Processus à l'intérieur du docker
docker ps
afficherait tous les services en cours d'exécution.
root@geekflare-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 geekflarelabcom_nginx_1
5e36d6998bba easyengine/postfix:v4.0.0 "postfix start-fg" 24 minutes ago Up 24 minutes 25/tcp geekflarelabcom_postfix_1
9fba9f5a2c77 easyengine/php:v4.0.0 "docker-entrypoint.s…" 24 minutes ago Up 24 minutes 9000/tcp geekflarelabcom_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
Comme vous pouvez le voir, Nginx, PHP, MariaDB, Redis, Nginx, etc. - tous fonctionnant dans le docker.
Mémoire, E / S, statistiques du processeur
docker stats
vous donnera des statistiques d'utilisation en temps réel
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 geekflarelabcom_nginx_1 0.00% 4.316MiB / 1.65GiB 0.26% 3.94MB / 3.74MB 0B / 0B 2
5e36d6998bba geekflarelabcom_postfix_1 0.00% 4.59MiB / 1.65GiB 0.27% 2.32kB / 688B 3MB / 0B 4
9fba9f5a2c77 geekflarelabcom_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
Emplacement des journaux
Je comprends que vous devez consulter les journaux pour le dépannage et de temps en temps. Vous pouvez les trouver ici.
Nginx et PHP - / opt / easyengine / sites / $ SITENAME / logs
EE est bien structurée et si vous souhaitez en savoir plus, je vous recommande de vérifier manuel. Exécuter WordPress dans le Docker est maintenant facile!
Si vous ne souhaitez pas gérer le serveur WP, l'optimisation, la sécurité par vous-même, vous pouvez essayer Kinsta qui s'occupent de tout pour vous afin que vous puissiez vous concentrer sur votre cœur de métier.