도커 설치 Nginx


방법 1. Dockerfile을 통해 빌드

Dockerfile 만들기

먼저 nginx 디렉터리를 만들어 나중에 관련된 내용을 저장하세요.

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

www 디렉터리는 nginx 컨테이너가 구성한 가상 디렉터리에 매핑됩니다.

logs 디렉터리는 nginx 컨테이너의 로그 디렉터리에 매핑됩니다.

conf 디렉터리의 구성 파일은 구성 파일에 매핑됩니다.

생성된 nginx 디렉터리에 들어가서 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;"]

Dockerfile을 통해 이미지를 생성하고 자신의 이름으로 바꿉니다

docker build -t nginx .

생성이 완료되면 방금 생성한 이미지를 다음에서 찾을 수 있습니다. 로컬 이미지 목록

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

방법 2, docker pull nginx

Docker Hub에서 nginx 이미지 찾기

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]
...

여기서 공식 이미지를 가져옵니다

php@php:~/nginx$ docker pull nginx

다운로드가 완료되면 nginx의 REPOSITORY가 있는 이미지를 찾을 수 있습니다. 로컬 이미지 목록.


nginx 이미지를 사용하여

컨테이너를 실행합니다.

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$

명령 지침:

  • -p 80:80: 컨테이너의 80 포트를 호스트의 80 포트에 매핑

  • 이름 mynginx: 컨테이너 이름을 mynginx

  • -v $PWD/www:/www:호스트의 현재 디렉터리에 있는 www를 컨테이너의 /www

  • -v $PWD/conf/nginx에 마운트합니다. conf:/etc/nginx/nginx.conf: 호스트의 현재 디렉터리에 있는 nginx.conf를 컨테이너

  • -v $PWD/logs:/wwwlogs에 있는 /etc/nginx/nginx.conf에 마운트합니다. 호스트의 현재 디렉터리에 있는 로그를 컨테이너의 /wwwlogs

에 마운트합니다. 컨테이너 시작 상태 보기

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

브라우저를 통해 액세스

1051.png