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 |