Docker - NGINX 설정

안녕하세요, 미래의 Docker 마에스트로 분들! 오늘 우리는 Docker와 NGINX의 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 저는 이 모험을 안내해 드리는 것을 기쁜 마음으로 생각합니다. 프로그래밍에 새로운 분이라면 걱정하지 마세요 - 우리는 기본부터 시작하여 차례대로 진행할 것입니다. 그러니 커피(또는 차, 그것이 당신의 취향이라면)를 한 잔 마시고, 함께 뛰어들어 보겠습니다!

Docker - Setting NGINX

Docker는 무엇인가요?

Docker와 NGINX를 설정하는 복잡한 부분으로 돌입하기 전에, 잠시 Docker가 무엇인지 이해해 보겠습니다. 새로운 집으로 이사할 때, 모든 소지품을 다른 상자에 담아 새로운 집에 맞춰보는 대신, Docker는 당신의 전체 방 - 가구, 장식 등 모든 것을 단일하고 이동 가능한 컨테이너로 담아줍니다. 그게 Docker가 소프트웨어에 대한 일하는 방식입니다!

Docker는 애플리케이션과 그에 필요한 모든 의존성을 표준화된 단위인 컨테이너로 패키징할 수 있게 해주는 플랫폼입니다. 이 컨테이너는 기반 인프라와 상관없이 어떤 시스템에서도 일관성 있게 실행됩니다. 멋지지 않나요?

NGINX는 무엇인가요?

이제 NGINX에 대해 이야기해 보겠습니다. NGINX(发音은 "engine-x")는 여러분의 웹 애플리케이션을 위한 초고효율적인 교통정리관입니다. NGINX는 인기 있는 웹 서버로, 리버스 프록시, 로드 밸런서, 그리고 HTTP 캐시로도 기능할 수 있습니다. 간단히 말해, 웹 애플리케이션이 원활하고 효율적으로 실행되도록 인터넷 트래픽을 관리하고 지시하는 역할을 합니다.

Docker로 NGINX 설정하기

초기 소개를 마치고, 이제 실제 코드로 손을 더러 만들어 보겠습니다!

단계 1: Docker 설치

첫째로, 시스템에 Docker를 설치해야 합니다. 설치 과정은 운영 체제에 따라 다릅니다만, 공식 Docker 웹사이트에서 상세한 지침을 찾아볼 수 있습니다. Docker를 설치한 후, 터미널이나 명령 프롬프트를 엽니다. 설치를 확인하기 위해 다음 명령어를 실행합니다:

docker --version

버전 번호가 표시되면, 축하합니다! Docker를 성공적으로 설치했습니다.

단계 2: NGINX Docker 이미지 가져오기

이제 Docker Hub에서 공식 NGINX 이미지를 가져오겠습니다. Docker Hub는 사전 빌드된 컨테이너 이미지의 거대한 도서관입니다. 다음 명령어를 사용합니다:

docker pull nginx

이 명령어는 Docker가 최신 NGINX 이미지를 다운로드하도록 합니다. 도서관에서 NGINX에 대한 책을 빌리는 것과 같습니다!

단계 3: Docker 컨테이너에서 NGINX 실행하기

이제 흥미로운 부분입니다 - Docker 컨테이너에서 NGINX를 실행하는 것입니다. 다음 명령어를 사용합니다:

docker run --name my-nginx -p 80:80 -d nginx

이 명령어를 설명해 보겠습니다:

  • docker run: Docker가 컨테이너를 실행하도록 합니다
  • --name my-nginx: 컨테이너에 이름을 지정합니다
  • -p 80:80: 컨테이너의 포트 80을 호스트의 포트 80으로 매핑합니다
  • -d: 컨테이너를 배후 모드(배경 모드)로 실행합니다
  • nginx: 사용할 이미지를 지정합니다

이 명령어를 실행한 후, 브라우저를 열고 http://localhost로 이동하여 기본 NGINX 환영 페이지를 볼 수 있어야 합니다. 얼마나 멋지지 않나요? 단일 명령어로 웹 서버를 설정한 것입니다!

단계 4: NGINX 설정 커스터마이징

이제 NGINX 설정을 커스터마이징하고 싶다고 가정해 봅시다. 우리는 자신의 Dockerfile을 만들어 이를 할 수 있습니다. Dockerfile이라는 이름의 새로운 파일을 만들고 다음 내용을 추가합니다:

FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf

이 Dockerfile은 두 가지 일을 합니다:

  1. 공식 NGINX 이미지를 시작합니다
  2. 우리의 커스터마이즈된 nginx.conf 파일을 컨테이너로 복사합니다

이제 같은 디렉토리에 nginx.conf라는 이름의 파일을 만들고 원하는 NGINX 설정을 추가합니다. 간단한 예시를 보여드리겠습니다:

events {
worker_connections 1024;
}

http {
server {
listen 80;
server_name localhost;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}

단계 5: 커스터마이즈된 NGINX 컨테이너 빌드하고 실행하기

이제 Dockerfile과 커스터마이즈된 설정이 준비되었으므로, 우리의 이미지를 빌드해 보겠습니다:

docker build -t my-custom-nginx .

마지막으로, 커스터마이즈된 NGINX 컨테이너를 실행합니다:

docker run --name my-custom-nginx -p 80:80 -d my-custom-nginx

이제 커스터마이즈된 NGINX 서버가 Docker 컨테이너에서 실행되고 있습니다.

유용한 Docker 명령어

다음은 유용한 Docker 명령어 표입니다:

명령어 설명
docker ps 실행 중인 컨테이너 목록
docker ps -a 모든 컨테이너(정지된 것 포함) 목록
docker stop <container_id> 실행 중인 컨테이너 중지
docker start <container_id> 정지된 컨테이너 실행
docker rm <container_id> 컨테이너 제거
docker images 모든 이미지 목록
docker rmi <image_id> 이미지 제거
docker logs <container_id> 컨테이너 로그 보기

결론

이렇게 해서, 여러분은 Docker와 NGINX의 기본 개념을 이해하고 자신의 NGINX 서버를 Docker 컨테이너에서 설정하고 커스터마이징하는 방법을 배웠습니다. 연습이 완벽을 만든다는 것을 기억하시기 바랍니다. 실험을 두려워하지 마세요.

저의 교육 경험에서, 가장 좋은 학습 방법은 실천하는 것을 알게 되었습니다. 오늘 배운 내용을 변경해 보세요, 또는 다른 서비스를 실행하는 여러 컨테이너를 설정해 보세요. 가능성은 무한합니다!

마무리할 때, 한 학생이 저에게 말한 것을 떠올립니다. "처음에는 Docker가 마법처럼 보였지만, 이제는 정말 지혜로운 엔지니어링이란 것을 알게 되었습니다." 이 튜토리얼이 Docker와 NGINX를 미스터리로 만들지 않고 해결해 드기를 바랍니다.

다음 번에 다시 만납시다, 행복한 Docker 사용을 기원합니다!

Credits: Image by storyset