class="layout-aside-right paging-number">
본문 바로가기
카테고리 없음

Docker로 웹 서버 환경 구성하기 (기초부터 실습까지)

by 탱클 2025. 12. 1.

Docker로 웹 서버 환경 구성하기 (기초부터 실습까지)

서버 환경을 효율적으로 관리하고, 개발과 운영을 분리하고자 할 때 **Docker(도커)**는 강력한 도구가 된다. Docker는 응용 프로그램과 그 환경을 컨테이너라는 단위로 패키징하여 어디서든 동일한 방식으로 실행할 수 있게 해준다. 이 글에서는 도커를 처음 접하는 사용자를 위해 웹 서버(Nginx)를 중심으로 기본 개념과 실제 구성 방법까지 설명한다.

1. Docker란 무엇인가?

Docker는 가상 머신과 유사하지만 훨씬 가볍고 빠르며, 애플리케이션 실행에 필요한 모든 요소를 컨테이너라는 단위로 묶어 실행할 수 있게 해준다. 운영체제 전체를 가상화하는 것이 아니라, 호스트 커널을 공유하면서 격리된 실행 환경을 제공한다.

2. Docker 설치

Ubuntu 기준 설치 방법은 다음과 같다.

sudo apt update
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker

Docker 명령을 sudo 없이 실행하고 싶다면:

sudo usermod -aG docker $USER

이후 로그아웃 후 재로그인

3. 첫 번째 Docker 컨테이너 실행

도커가 제대로 설치되었는지 확인하기 위해 hello-world 이미지를 실행해본다.

docker run hello-world

정상적으로 출력이 되면 도커 설치가 완료된 것이다.

4. Nginx 웹 서버 컨테이너 실행

웹 서버를 실행하기 위해 nginx 이미지를 사용한다.

docker run -d -p 8080:80 --name my-nginx nginx
  • -d: 백그라운드 실행
  • -p 8080:80: 호스트의 8080 포트를 컨테이너의 80 포트에 연결
  • --name: 컨테이너 이름 지정

브라우저에서 http://서버IP:8080으로 접속하면 nginx 기본 페이지가 출력된다.

5. HTML 파일 직접 호스팅하기

Nginx 컨테이너에 직접 HTML 파일을 매핑해보자.

  1. 로컬에서 HTML 파일 생성
mkdir ~/nginx-html
echo "<h1>Hello Docker</h1>" > ~/nginx-html/index.html
  1. 컨테이너 실행 시 볼륨 매핑
docker run -d -p 8080:80 --name my-nginx -v ~/nginx-html:/usr/share/nginx/html nginx

이제 브라우저에서 해당 IP의 8080 포트로 접속하면 Hello Docker 문구가 출력된다.

6. 컨테이너 상태 확인 및 관리

  • 실행 중인 컨테이너 목록:
docker ps
  • 모든 컨테이너 목록 (중지 포함):
docker ps -a
  • 컨테이너 정지:
docker stop my-nginx
  • 컨테이너 삭제:
docker rm my-nginx
  • 이미지 목록 확인:
docker images

7. Docker Compose 소개 (선택)

웹 서버 외에도 데이터베이스, 백엔드 등 여러 컨테이너를 함께 사용할 때는 Docker Compose를 사용하면 편리하다. docker-compose.yml 파일에 모든 설정을 정의하고 docker-compose up 명령으로 전체 구성을 실행할 수 있다.

마무리

Docker는 서버 환경을 일관성 있게 구성하고, 배포 속도를 높이며, 자원 관리까지 효율적으로 만들어주는 도구다. 웹 서버부터 시작해 데이터베이스, 백엔드, 프론트엔드까지 컨테이너 기반으로 운영하면 더욱 유연하고 안정적인 시스템을 만들 수 있다. 이 글의 실습을 기반으로 다양한 Docker 이미지를 활용해 나만의 개발 환경을 구성해보자.