Maison > Opération et maintenance > Docker > le corps du texte

Analysez comment Docker construit l'environnement lnmp (php7.4 + nginx)

青灯夜游
Libérer: 2022-02-15 10:25:08
avant
6784 Les gens l'ont consulté

Cet article vous présentera la méthode d'installation de docker sous Linux, et en apprendra plus sur les étapes de création de l'environnement lnmp (php7.4 + nginx) avec docker. J'espère qu'il vous sera utile !

Analysez comment Docker construit l'environnement lnmp (php7.4 + nginx)

1. Bases de Docker

1.1 Installation de Docker

L'installation de Docker est très simple, nous pouvons directement utiliser la commande yum dans le système centos pour installer :

yum install -y docker
Copier après la connexion

Une fois terminé, vérifiez les informations sur la version de Docker :

[root@localhost docker]# docker version
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-204.git0be3e21.el7.x86_64
 Go version:      go1.10.3
 Git commit:      0be3e21/1.13.1
 Built:           Fri Mar 19 13:57:09 2021
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-204.git0be3e21.el7.x86_64
 Go version:      go1.10.3
 Git commit:      0be3e21/1.13.1
 Built:           Fri Mar 19 13:57:09 2021
 OS/Arch:         linux/amd64
 Experimental:    false
[root@localhost docker]#
Copier après la connexion

prouve que l'installation est terminée. La commande docker est la suivante :

systemctl start docker   # 启动docker
systemctl stop docker    # 停止docker
systemctl status docker  # 查看docker状态
systemctl restart docker # 重新启动docker
Copier après la connexion

sudo systemctl activate docker #Configurer docker pour qu'il démarre automatiquement au démarrage

Nous devons modifier la source de l'image docker avant de démarrer :

[root@localhost docker]# vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://ftnejmh3.mirror.aliyuncs.com"]
}
Copier après la connexion

Après une fois terminé, exécutez systemctl start docker pour démarrer le service docker.

2. La structure de répertoires lnmp construite par docker :

docker
│   └── nginx
│   │   └── default.conf #nginx配置文件
│   └── www
│       └── ...  #项目代码
Copier après la connexion

2.1 Docker builds nginx

Nous pouvons utiliser la commande docker search nginx pour trouver l'image nginx sur Docker Hub Ici, nous extrayons directement l'image officielle

[root@localhost ~]# docker pull nginx
Copier après la connexion

En attente du téléchargement. pour compléter, nous trouverons l'image dont le REPOSITORY est nginx dans la liste d'images locale.

[root@localhost www]# docker images
REPOSITORY       TAG       IMAGE ID        CREATED        SIZE
docker.io/nginx  latest    62d49f9bab67    12 days ago    133 MB
Copier après la connexion

Créer la configuration nginx

Afficher les informations IP

[root@localhost docker]# docker inspect php | grep "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAddress": "172.17.0.3",
Copier après la connexion

Utiliser l'image nginx pour ouvrir le conteneur d'application nginx

[root@localhost ~]# docker run -p 80:80 -d --name nginx -v /docker/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /docker/www:/docker/www  --privileged=true nginx

-p 80:80:将容器的80端口映射到主机的80端口
-d 后台运行(守护进程)
--name nginx:将容器命名为nginx
-v 将主机中当前目录下的www挂载到容器的www目录

#查看docker目前的容器
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
8781afd1bf13        nginx               "/docker-entrypoin..."   About an hour ago   Up 17 minutes       0.0.0.0:80->80/tcp                  nginx
Copier après la connexion

2.2 installation du docker php

Comme nginx, nous pouvons d'abord trouver l'image via la recherche Docker php, ici c'est directement Tirez l'image officielle avec le label 7,4-fpm Vous pouvez choisir d'autres versions par vous-même

[root@localhost ~]# docker pull php:7.4-fpm
Copier après la connexion

Une fois le téléchargement terminé, nous pouvons trouver l'image avec le REPOSITORY de php et le label de 7,4-fpm dans le local. liste d'images.

[root@localhost docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              62d49f9bab67        12 days ago         133 MB
docker.io/php       7.4-fpm             41b17b0f90e6        2 weeks ago         405 MB
Copier après la connexion

Utilisez l'image php pour ouvrir le conteneur d'application php-frm

[root@localhost docker]# docker run -p 9000:9000 -d --name php -v /docker/www:/docker/www --privileged=true php:7.4-fpm
-p 9000:9000 :将容器的9000端口映射到主机的9000端口
-d 后台运行(守护进程)
--name php:将容器命名为php
-v 将主机中当前目录下的www挂载到容器的www目录
Copier après la connexion

Vérifiez l'état de démarrage du conteneur

[root@localhost docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
cbf73ca0f17c        php:7.4-fpm         "docker-php-entryp..."   About an hour ago   Up About an hour    0.0.0.0:9000->9000/tcp              php
8781afd1bf13        nginx               "/docker-entrypoin..."   About an hour ago   Up 23 minutes       0.0.0.0:80->80/tcp                  nginx
Copier après la connexion

À ce stade, vous pouvez voir que nginx et php fonctionnent correctement (STATUS est affiché, indiquant qu'ils sont en cours d'exécution )

Afficher le php configuré par nginx- L'IP du service fpm est-elle cohérente :

location ~ \.php$ {
    root /docker/www/lmrs-2008/public;
    fastcgi_pass   172.17.0.3:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
Copier après la connexion

Dans la configuration ci-dessus,

fastcgi_pass 172.17.0.3:9000

doit être cohérente avec l'IP du conteneur php que nous visualisons ; .

Terminez la configuration ci-dessus et confirmez qu'il n'y a pas de problème avec le démarrage du conteneur. Vous pouvez le tester :

Il peut y avoir des problèmes d'autorisation de répertoire lors de l'accès à Laravel. Voici la solution :

[root@localhost docker]# cd /docker/www
[root@localhost www]# chmod -R 777  文件名
Copier après la connexion
Apprentissage recommandé : "

Tutoriel vidéo Docker"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal