다양한 주제

[Nginx] Nginx 도커에 설치하고 실행하기

patrick-star 2023. 5. 3. 13:52
728x90

Nginx란

Nginx란 HTTP 프록시 서버, reverse 프록시 서버, 메일 프록시 서버, 범용 TCP/UDP 프록시 서버

  • HTTP 서버 측면의 기본적인 특징
    • 정적(static) 파일, 인덱스(index) 파일을 제공
    • 캐싱을 이용한 가속화된 리버스 프록싱
    • FastCGI, uwsgi, SCGI, memcached 서버의 캐싱을 이용한 빠른 속도 지원
    • 모듈 구조(modular architecture)
    • SSL, TLS SNI 지원
    • HTTP/2 에서 동작 가능

동작 환경

  • OS : Windows 10
  • 커맨드 : Windows Powershell (ver 5.1.19041.2673)

Docker에서 Nginx 설치

1) NGINX 이미지를 pull한다.

docker pull nginx

2) static content를 담아둘 directory에 Dockerfile 설정 (여기서 나는 VSCode로 Dockerfile 작성해서 디렉토리에 저장함)

FROM nginx

COPY . /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf

RUN apt-get -y update \
 && apt-get -y install vim
  • FROM nginx : nginx 이미지를 기반으로 설정한다.
  • COPY . /usr/share/nginx/html : COPY <복사할 파일 경로> <이미지에서 파일이 위치할 경로>
  • RUN <bash 명령> : 실행할 bash 명령문

3) Dockerfile로 이미지 빌드 ⇒ 해당 커맨드는 Dockerfile이 위치한 곳에서 실행해야 함

docker build -t some-content-nginx . 
  • -t some-content-nginx : 저장소의 이름을 some-content-nginx로 설정
  • . : Dockerfile의 경로는 현재 위치니까 .으로 설정

4) 컨테이너 생성 & 외부 포트와 연결

docker run --name some-nginx -d -p 8080:80 some-content-nginx 
  • --name : 컨테이너의 이름 설정 ⇒ 여기서는 some-nginx로 설정
  • -d : 컨테이너를 백그라운드에서 실행하도록 하고 컨테이너 ID를 출력함
  • -p : 호스트의 8080번 포트를 컨테이너의 80번 포트와 연결(bind)
  • some-content-nginx : 실행할 파일

해당 커맨드까지 완료하면 http://localhost:8080을 통해 접속 가능한 상태가 됨 (Welcome to nginx!)

Nginx 실행

도커에 Nginx를 설치했으니 실행해보자.

1) Docker Desktop을 설치했다면 Terminal 실행

2) 커맨드에서 컨테니어를 bash로 실행 docker exec -it 컨테이너이름 bash
- it = i옵션 + t옵션 = (표준입력 STDIN을 연다) + (pseudo TTY를 할당한다)

출처

https://nginx.org/en/  
https://hub.docker.com/_/nginx

'다양한 주제' 카테고리의 다른 글

crontab  (0) 2023.07.20
[Linux] 배포판, shell, 커널  (0) 2023.05.17
DBeaver에 대해  (0) 2023.04.19
MySQL 관련된 여러 내용  (0) 2023.04.19
Powershell에서 django-admin 사용하기  (0) 2023.04.18