개발일기장

Docker 공부(2) - NodeJS를 이용하여 본문

STUDY/Docker

Docker 공부(2) - NodeJS를 이용하여

게슬 2022. 5. 26. 13:17
728x90

http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9791158392864 

 

따라하며 배우는 도커와 CI 환경 - 교보문고

컨테이너 이론부터 Travis CI, AWS 실습까지 | ◎ 기본적인 도커 클라이언트 명령어 ◎ 도커를 이용한 간단한 Node.js 애플리케이션 만들기 ◎ 단일 컨테이너를 활용한 애플리케이션 개발과 배포 ◎

www.kyobobook.co.kr

일반적으로 Dockerfile을 작성할 때는 이전 포스트 같은 형식으로 만듬

# 베이스 이미지 명시
# <이미지 이름>:<태그> 형식으로 작성
# 태그 없으면 최신 버젼으로 받는다.
FROM baseImage

# 추가로 필요한 파일들 내려받기.
# 도커 이미지가 생성되기 전에 수행할 셸 명령어
RUN command

# 컨테이너 시작 시 실행할 명령어를 명시
CMD ["echo","hello"]

1. NodeJS와 Express를 이용하여 간단하게 어플리케이션 실행하기

FROM node:16

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

CMD ["node", "server.js"]

1. node:16 버젼을 이용한다.

2. 작업공간 위치는 /usr/src/app 에서 시작한다.

3. package.json을 WORKDIR로 복사한다.

4. 패키지를 다운받는다.

5. 나머지 코드들을 복사한다.

6. 8080 port로 컨테이너를 노출할 것을 예고

7. 실행커맨드

 

docker build -t tlqckd0/exam:2 ./
docker build <-t {사용자이름}/{repo}:{version} > <Dockerfile위치>

 

※ 각 단계마다 캐쉬되는 부분이 있어서 조금 변경하고 다시 build하게되면 변하지 않는 부분은 빠르게 넘어간다.

 

 

근대 6은 이거 -p를 이용하여 호스트에서 원하는 곳으로 지정을 하거나 아니면 랜덤으로 부여가 된다.

1. -P 옵션으로 명시하지 않는경우

docker run -P -v %cd%:/usr/src/app --name exam tlqckd0/exam:2

docker ps

호스트OS의 49153port를 통해 Dockerfile에 명시했던 컨테이너의 8080 port를 이용하게 된다.

 

2. -p옵션으로 명시하는 경우

docker run -p 5000:8080 -v %cd%:/usr/src/app --name exam tlqckd0/exam:2

docker ps

지정했던 5000포트를 통하여 8080으로 가게된다. 


2. Volume사용하기

위와 같이 하면 코드를 변경하고 나서 다시 build를 해줘야하는 불편함이 있다.

그럴경우 설치했던 패키지를 제외한 나머지 COPY해야할 부분에 대해서 HOST를 참조하게 한다.

window 기준

docker run -p 5000:8080 -v/usr/src/app/node_modules -v %cd%:/usr/src/app tlqckd0/exam

mac이나 linux는
%cd% 를 $(pwd)로 변경
728x90

'STUDY > Docker' 카테고리의 다른 글

Docker 공부(4) - git action , Docker hub에 이미지 push하기(간단)  (0) 2022.05.30
Docker 공부(3) - docker-compose  (0) 2022.05.27
Docker 공부(1)  (0) 2022.05.25
Comments