방명록
- 도커(Docker)로 Nginx 웹 서버 컨테이너 만들기2025년 07월 21일 11시 18분 59초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
도커(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>© 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 공식 이미지 활용
- Nginx 공식 이미지는 다양한 태그와 설정을 지원한다. 자세한 내용은 Nginx Docker Hub 공식 페이지에서 확인할 수 있다.
3-2. 실습 예시
- 위 과정을 통해 도커와 Nginx를 활용한 웹 서버 배포를 손쉽게 실습할 수 있다.
- 추가적인 설정이나 커스터마이징이 필요하다면, Dockerfile과 Nginx 설정 파일을 수정하여 다양한 환경을 실험해볼 수 있다.
728x90반응형'DevOps > Docker' 카테고리의 다른 글
Docker Compose 기본 사용법 (1) 2025.07.24 Docker 빌드 시간 단축 및 개발 효율 극대화: 캐싱과 볼륨 활용 팁 (1) 2025.07.24 Next.js 애플리케이션을 Docker와 Alpine으로 배포하기 (1) 2025.07.21 Docker를 활용한 Nest.js 애플리케이션 컨테이너화 및 관리 (0) 2025.07.18 Dockerfile의 WORKDIR 명령어 이해하기 (1) 2025.07.17 다음글이 없습니다.이전글이 없습니다.댓글