Docker 공부 정리 (2. Nginx 컨테이너로 html 띄우기 )

하윤·2023년 6월 26일
2

Docker

목록 보기
2/2

이번 시간에는 Docker와 Docker-Compose를 이용하여 Nginx 컨테이너를 만든 후, 그 컨테이너에서 호스트(로컬인 나)가 가지고 있는 index.html을 간단하게 띄워보았다.

docker pull nginx

Docker만으로 해보기

먼저, pull 명령어를 통해서 내가 구동시킨 Docker에 nginx image를 pull 받아주었다.

docker run -d --rm -p 50000:80 
  -v $(pwd)/index.html:/usr/share/nginx/html/index.html 
  nginx

그 후, docker run 명령어를 통해서 nginx 컨테이너를 run 해주었다. 여기서, 주목해야할 옵션들이 있다.

  • -d 옵션은 detatched mode로, 백그라운드 모드로 이 컨테이너를 실행하는 것을 의미한다
  • -rm 옵션은, 프로세스가 종료될 때, 컨테이너도 자동으로 제거되도록 설정해준다.
  • -p 옵션은, 호스트와 컨테이너 포트를 연결해준다. 위 코드에서는, 호스트(로컬인 나)의 50000번째 포트와, 컨테이너의 80포트를 연결해주었다.
  • -v 옵션은 컨테이너와 호스트의 디렉토리를 연결하는 것인데, $(pwd)는 터미널에서 내가 위치한 폴더의 위치를 의미한다. 그리고, 나는 index.html과 컨테이너 내부의 nginx의 index.html을 연결해주었다.

Docker-Compose 사용하기

Docker-Compose를 사용하기위해, docker-compose.yml 파일 작성이 먼저 필요했다.

version: '2'
services:
  db:
    image: nginx
    ports:
      - "50000:80"
    volumes:
      - ./index.html:/usr/share/nginx/html/index.html
    restart: always
   

이전의 코드와 유사하지만, 이렇게 명령어 및 옵션들을 한 곳에 정리해둘 수 있다. 추후에 DB 연결등이 필요하다면, mysql 서버와 spring 서버를 한꺼번에 컨테이너에서 돌릴 수 있는 착한 기능이다.

docker-compose up

그 후, docker-compose up 명령어 하나로, 도커 컨테이너를 로컬 환경에서 실행시킬 수 있었다.

그 결과, 50000 포트에서 정상적으로 실행되는 모습을 확인할 수 있다!

profile
넓은 시야를 가진 개발자를 꿈꾸는

0개의 댓글