Dandy Now!
  • 도커(Docker)로 Nginx 웹 서버 컨테이너 만들기
    2025년 07월 21일 11시 18분 59초에 업로드 된 글입니다.
    작성자: DandyNow
    728x90
    반응형

    도커(Docker)로 Nginx 웹 서버 컨테이너 만들기

    1. 도커와 Nginx란 무엇인가

    1-1. 도커(Docker)의 개념

    • 도커(Docker)는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 도커를 사용하면 애플리케이션과 그 실행 환경을 하나의 컨테이너로 패키징하여, 어디서든 일관되게 실행할 수 있다.

    1-2. Nginx란 무엇인가

    • Nginx는 가볍고 빠른 성능을 자랑하는 오픈소스 웹 서버이다. 정적 파일 서비스, 리버스 프록시, 로드 밸런싱 등 다양한 기능을 제공한다. 공식 도커 이미지는 도커허브에서 제공된다.
      참고: Nginx Docker Hub 공식 페이지

    2. 도커로 Nginx 웹 서버 컨테이너 만들기

    2-1. index.html 파일의 중요성

    • 웹 프로젝트의 메인 페이지는 일반적으로 index.html로 작명한다.
    • Nginx 공식 이미지는 /usr/share/nginx/html/index.html 파일을 기본 웹 페이지로 제공한다.
    • 만약 다른 이름(예: main.html)을 사용할 경우, 별도의 Nginx 설정이 필요하다.
    • 따라서, 예제 소스의 메인 파일명은 반드시 index.html로 지정하는 것이 바람직하다.

    2-2. 예제 소스 코드: index.html

    <!DOCTYPE html>
    <html lang="ko">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>도커 연습용 웹페이지</title>
        <link rel="stylesheet" href="style.css" />
      </head>
      <body>
        <header>
          <h1>도커 연습용 웹페이지</h1>
          <nav>
            <ul>
              <li><a href="#home">홈</a></li>
              <li><a href="#about">도커란?</a></li>
              <li><a href="#practice">실습 예시</a></li>
              <li><a href="#contact">연락처</a></li>
            </ul>
          </nav>
        </header>
        <main>
          <section id="home">
            <h2>환영합니다!</h2>
            <p>
              이 웹사이트는 도커(Docker)를 연습하고 실습하기 위해 만들어졌습니다.
            </p>
          </section>
          <section id="about">
            <h2>도커란?</h2>
            <p>
              도커는 컨테이너 기반의 오픈소스 가상화 플랫폼으로, 애플리케이션을 쉽고
              빠르게 배포하고 관리할 수 있게 도와줍니다.
            </p>
          </section>
          <section id="practice">
            <h2>도커 실습 예시</h2>
            <ul>
              <li>간단한 웹 서버 컨테이너 실행</li>
              <li>이미지 빌드 및 배포</li>
              <li>여러 컨테이너 오케스트레이션</li>
            </ul>
            <pre><code>docker run -d -p 80:80 nginx</code></pre>
          </section>
          <section id="contact">
            <h2>연락처</h2>
            <p>이메일: example@email.com</p>
          </section>
        </main>
        <footer>
          <p>&copy; 2024 도커 연습용 웹페이지</p>
        </footer>
      </body>
    </html>

    2-3. 예제 소스 코드: style.css

    body {
      font-family: "Noto Sans KR", Arial, sans-serif;
      margin: 0;
      padding: 0;
      background: #f7f7f7;
      color: #222;
    }
    
    header {
      background: #2496ed;
      color: #fff;
      padding: 20px 0 10px 0;
      text-align: center;
    }
    
    nav ul {
      list-style: none;
      padding: 0;
      margin: 10px 0 0 0;
      display: flex;
      justify-content: center;
      gap: 30px;
    }
    
    nav a {
      color: #fff;
      text-decoration: none;
      font-weight: bold;
      transition: color 0.2s;
    }
    
    nav a:hover {
      color: #ffd700;
    }
    
    main {
      max-width: 700px;
      margin: 40px auto;
      background: #fff;
      border-radius: 10px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07);
      padding: 30px 40px;
    }
    
    section + section {
      margin-top: 30px;
    }
    
    h1,
    h2 {
      margin-top: 0;
    }
    
    h2 {
      color: #2496ed;
    }
    
    pre {
      background: #222;
      color: #fff;
      padding: 12px;
      border-radius: 6px;
      overflow-x: auto;
      font-size: 1em;
      margin-top: 10px;
    }
    
    footer {
      background: #222;
      color: #fff;
      text-align: center;
      padding: 15px 0;
      position: fixed;
      width: 100%;
      bottom: 0;
      left: 0;
    }

    2-4. Dockerfile 작성

    • Dockerfile은 도커 이미지를 만들기 위한 설정 파일이다. 아래와 같이 작성한다.

      FROM nginx
      
      COPY ./ /usr/share/nginx/html

      위 Dockerfile은 공식 Nginx 이미지를 기반으로 하며, 현재 디렉토리의 모든 파일을 컨테이너의 /usr/share/nginx/html 경로에 복사한다.

    2-5. 도커 이미지 빌드

    • 도커 이미지는 아래 명령어로 빌드한다.
      docker build -t my-web-server .
      -t 옵션은 이미지에 태그를 붙이는 역할을 한다.

    2-6. 도커 이미지 확인

    • 빌드된 이미지는 다음 명령어로 확인할 수 있다.
      docker image ls

    2-7. 컨테이너 실행

    • 빌드한 이미지를 기반으로 컨테이너를 실행한다.
      docker run -d -p 80:80 my-web-server
      위 명령어는 컨테이너를 백그라운드(-d)로 실행하며, 호스트의 80번 포트를 컨테이너의 80번 포트에 매핑한다.

    2-8. 컨테이너 내부 확인

    • 실행 중인 컨테이너에 접속하여 파일이 잘 복사되었는지 확인할 수 있다.
      docker exec -it [컨테이너ID] bash
      컨테이너 내부에서 /usr/share/nginx/html 디렉토리로 이동하면, 복사된 웹 파일들을 확인할 수 있다.

    3. 참고 사항

    3-1. Nginx 공식 이미지 활용

    3-2. 실습 예시

    • 위 과정을 통해 도커와 Nginx를 활용한 웹 서버 배포를 손쉽게 실습할 수 있다.
    • 추가적인 설정이나 커스터마이징이 필요하다면, Dockerfile과 Nginx 설정 파일을 수정하여 다양한 환경을 실험해볼 수 있다.

    728x90
    반응형
    댓글