nodejs 프로젝트 도커라이징

2021. 10. 25. 17:42개발/docker

1. 프로젝트에 Dockerfile 및 .dockerignore 작성 

 

- Dockerfile

FROM node:14.17.3

# 디렉토리 설정
WORKDIR /modi


# 프로젝트에서 옮길 파일
COPY package.json ./


# 시간 설정 (서울)
ENV TZ=Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 필요한 패키지 설치
RUN npm i --save
RUN npm i -g pm2

# 소스파일 복사 ( 옮기지 않을 파일은 .dockerignore 에 지정 )
COPY . .

# 사용할 포트
EXPOSE 3000

# 실행 ( pm2 )
CMD ["pm2-runtime","start","./bin/www"]

- .dockerignore 

node_modules
package-lock.json

 

2. 빌드

# ( docker build . -t ID/이미지명:태그 ) ( 이미지명 = 'ID/이미지명' 가 되는거며 ID/ 가 붙지않아도 무방 )
docker build . -t dockerid/imageName:test

 

3. 컨테이너 생성

# ( docker create --name [컨테이너 이름] -p [외부 포트]:[내부 포트] [이미지 이름]:[태그] )
docker create --name conName -p 3000:3000 dockerId/imageName:test

 

4. 컨테이너 실행

# ( docker start 컨테이너명 ) 
docker start conName

 - 컨테이너 확인

docker ps

- 컨테이너 내부 접속

# ( docker exec -it 컨테이너명 /bin/bash )
docker exec -it modi /bin/bash

- 로컬 <=> 컨테이너 파일 복사

# 로컬에서 컨테이너로
# ( docker cp 파일경로 컨테이너명:위치시킬 파일경로 )
docker cp /test.md conName:/

# 컨테이너에서 로컬로
# ( docker cp 컨테이너명:파일경로 로컬파일경로  )
docker cp conName:/test.md /

 

5. 도커 저장소 푸쉬

# (docker push 이미지명:태그명)
docker push dockerId/imageName:test

+ 저장소 업로드 위한 이름 변경

( # docker tag 이미지명:태그 바꿀이미지명:태그 )
docker tag dockerId/imageName:test dockerId/imageName2:newTag

 

 

6. 도커 저장소 풀

# ( docker pull 이미지명:태그 (저장소 기준) )
docker pull dockerId/imgName:test

 

 

'개발 > docker' 카테고리의 다른 글

docker volume 사용하기  (0) 2021.11.02
docker/nodejs/nginx 로드 밸런싱 및 무중단 배포  (0) 2021.11.02
우분투 Docker 설치 및 로그인  (0) 2021.10.25