도커 설치 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
브라우저를 통해 액세스