티스토리 뷰

728x90
반응형

 

 

 

 

아래 블로그 참고하였습니다

https://shanepark.tistory.com/376

 

Nojde.js Web app을 도커 이미지로 만들고 Docker Hub에 올리기

Intro Node.js로 작성한 웹 어플리케이션을 간단하게 도커 이미지로 만든 후에 해당 이미지를 도커 허브에 push 해서 어디서나 받아서 사용하는 방법을 알아 보도록 하겠습니다. 1. Node.js 웹 어플리케

shanepark.tistory.com

 

 

먼저, 이미지파일로 만들 nodejs 서버를 아래와 같이 만들어두었습니다.

저는 node app.js 명령어를 통해 서버가 실행되도록 생성했어요.

 

 

 

 

 

프로젝트폴더 내에서 Dockerfile 파일을 만들어줍니다.

vi Dockerfile
반응형

 

 

Dockerfile 파일 내부에는 아래와 같이 작성해주세요.

node:16 은 node 16버전의 이미지를 생성하겠다는 뜻이고,

WORKDIR에는 nodejs 프로젝트의 경로,

EXPOSE에는 nodejs 프로젝트를 실행할 포트번호,

CMD [ "node", "app.js" ] 에는 실행할 js파일명을 적어주면 됩니다.

FROM node:16
 
WORKDIR /{프로젝트폴더경로}

COPY package*.json ./

RUN npm install

COPY . .
 
EXPOSE 8080

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

 

 

 

.dockerignore 파일도 생성해 줍니다.

vi .dockerignore

 

.dockerignore 파일 내부에는 아래와 같이 작성해줍니다.

node_modules
npm-debug.log
728x90

 

 

이제 작성한 dockerfile로 도커 이미지를 생성합니다.

위 블로그에서는 {유저명}/{프로젝트명}을 입력해야 한다고 적혀있었지만

저는 그냥 원하는 이미지명으로 입력했는데도 정상적으로 실행되었어요.

docker build . -t {이미지명}

 

이제 도커 이미지 목록을 확인해보면, 정상적으로 이미지파일이 생성된 것을 확인할 수 있습니다.

포트를 8080:8080으로 맞춰주고 실행합니다.

잘 실행되었는지 명령어로 확인해봅시다!

docker images // 이미지 확인
docker run -p 8080:8080 --name {생성할 컨테이너명} -d {이미지명} // 앱 실행
curl -i localhost:8080 // 잘 실행되었는지 확인

 

 

참고로 이렇게 만들어놓은 이미지를 tar파일로 압축하여 추출하려면 아래와 같이 진행하면 됩니다.

이 부분은 아래 블로그를 참고하였습니다.

https://velog.io/@juhan/Docker-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%ED%8C%8C%EC%9D%BC%EB%A1%9C-%EC%A0%80%EC%9E%A5%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0

 

Docker 이미지를 파일로 저장/가져오기

이미 존재하는 docker 이미지를 파일로 압축하고, 해당 파일을 이미지로 변환하는 방법이다. 보통은 docker hub나 내부 private repository를 통해서 이미지를 push하고 pull하여 사용하지만 간혹 외부 인터

velog.io

# 이미지를 파일로 추출(save)
command: docker save {option} {image:tag} {filename}
ex) docker save -o test-image:1.0 test.tar

# 추출한 파일을 이미지로 업로드 (load)
command: docker load {option} {filename}
ex) docker load -i test.tar

 

 

728x90
반응형
댓글