Installation DockerNginx


Méthode 1. Créer via Dockerfile

Créer Dockerfile

Tout d'abord, créez le répertoire nginx pour stocker l'élément associé suivant .

php@php:~$ mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

Le répertoire www sera mappé au répertoire virtuel configuré par le conteneur nginx

Le répertoire des logs sera mappé au répertoire des logs du conteneur nginx

La configuration les fichiers du répertoire conf seront mappés au fichier de configuration du conteneur nginx

Entrez le répertoire nginx créé et créez un Dockerfile

FROM debian:jessie

MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com"

ENV NGINX_VERSION 1.10.1-1~jessie

RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \
        && echo "deb http://nginx.org/packages/debian/ jessie nginx" >> /etc/apt/sources.list \
        && apt-get update \
        && apt-get install --no-install-recommends --no-install-suggests -y \
                                                ca-certificates \
                                                nginx=${NGINX_VERSION} \
                                                nginx-module-xslt \
                                                nginx-module-geoip \
                                                nginx-module-image-filter \
                                                nginx-module-perl \
                                                nginx-module-njs \
                                                gettext-base \
        && rm -rf /var/lib/apt/lists/*

# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
        && ln -sf /dev/stderr /var/log/nginx/error.log

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]

Créez une image via le Dockerfile et remplacez-la par votre propre nom

docker build -t nginx .

Une fois la création terminée, nous pouvons trouver l'image nouvellement créée dans la liste d'images locale

php@php:~/nginx$ docker images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              555bbd91e13c        3 days ago          182.8 MB

Méthode 2, docker pull nginx

Trouver l'image nginx sur Docker Hub

php@php:~/nginx$ docker search nginx
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                     Official build of Nginx.                        3260      [OK]       
jwilder/nginx-proxy       Automated Nginx reverse proxy for docker c...   674                  [OK]
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable ...   207                  [OK]
million12/nginx-php       Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...   67                   [OK]
maxexcloo/nginx-php       Docker framework container with Nginx and ...   57                   [OK]
webdevops/php-nginx       Nginx with PHP-FPM                              39                   [OK]
h3nrik/nginx-ldap         NGINX web server with LDAP/AD, SSL and pro...   27                   [OK]
bitnami/nginx             Bitnami nginx Docker Image                      19                   [OK]
maxexcloo/nginx           Docker framework container with Nginx inst...   7                    [OK]
...

Ici, nous extrayons l'image officielle

php@php:~/nginx$ docker pull nginx

Une fois le téléchargement terminé, nous pouvons trouver l'image avec REPOSITORY nginx dans la liste d'images locale.


Utilisez l'image nginx

pour exécuter le conteneur

php@php:~/nginx$ docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs  -d nginx  
45c89fab0bf9ad643bc7ab571f3ccd65379b844498f54a7c8a4e7ca1dc3a2c1e
php@php:~/nginx$

Description de la commande :

  • -p 80 :80 :Mappez le port 80 du conteneur au port 80 de l'hôte

  • --name mynginx : Nommez le conteneur mynginx

  • -v $PWD/www:/www:Montez www dans le répertoire actuel sur l'hôte vers /www dans le conteneur

  • -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:Montez nginx.conf dans le répertoire actuel de l'hôte sur le conteneur /etc/nginx/nginx.conf

  • -v $PWD/logs:/wwwlogs:Montez les journaux du répertoire actuel sur l'hôte dans le /wwwlogs du conteneur

Afficher l'état de démarrage du conteneur

php@php:~/nginx$ docker ps
CONTAINER ID        IMAGE        COMMAND                      PORTS                         NAMES
45c89fab0bf9        nginx        "nginx -g 'daemon off"  ...  0.0.0.0:80->80/tcp, 443/tcp   mynginx
f2fa96138d71        tomcat       "catalina.sh run"       ...  0.0.0.0:81->8080/tcp          tomcat

Accès via le navigateur

1051.png