Docker 이미지 만들기
자 이제 docker 이미지를 직접 만들어 봅시다.
docker 이미지는 Dockerfile 을 정의한 후 build 명령어를 수행하면 Dockerfile 에 기술된 내용대로 build 하여 만들어 집니다.
Dockerfile 을 통한 Container 정의
Dockerfile 을 통한 Node Container 정의
제가 docker 를 다시 들여다본 목적은 현재 개발하고 있는 node 프로그램을 heroku 에 deploy 하기 위함이구요.
아래와 같이 정의했습니다.
FROM node:latest
ENV NODE_ENV=production
ENV PORT=4000
COPY . /var/www
WORKDIR /var/www
#VOLUME ("/var/www")
#VOLUME 은 heroku 에서 지원이 안됩니다. 당연하게도.
RUN npm install
RUN npm run build
EXPOSE 4000
CMD ["npm", "start"]
#heroku 는 CMD 가 필수입니다. ENTRYPOINT 가 정의되어 있다해도 말이죠.
ENTRYPOINT ["npm", "start"]
Docker build 를 통한 이미지 빌드
Dockerfile 이 완성되면, 빌드해서 이미지를 만듧니다.
docker build -t jerry/node .
// build 명령어로 이미지를 빌드하되, 이미지 이름을 "jerry/node" 로 taging 하도록 지정했습니다.
// Dockerfile 은 현재 경로에 있는 파일 (.) 을 지정하였구요. -f 옵션을 통해 특정 Dockerfile 을 지정할 수도 있습니다.
Dockerfile 에 정의한 순서대로 실행이 되고, jerr/node:lastest 이미지가 정상적으로 생성되었습니다.
생성된 이미지 실행
이미지를 생성한 이유는 컨테이너 실행을 하기 위한 것이니 아래와 같이 실행하면 됩니다.
docker run -p 80:4000 jerry/node
// jerry/node 이미지를 이용해서 컨테이너를 실행하며, 호스트의 80 포트를 컨테이너의 4000 포트에 연결!.
정상적으로 구동되었습니다.
이번 포스트는 여기까지 입니다.
'Development Tools > Docker' 카테고리의 다른 글
Docker Hub 에 내 이미지 배포하기 (0) | 2018.01.02 |
---|---|
Docker 에서 표준적으로 쓰이는 Apline Linux 는 뭔가요? (3) | 2018.01.02 |
Docker 를 통해 Node 서버 띄우기 (0) | 2017.12.30 |
Docker를 통해 Nginx 띄우기 (0) | 2017.12.30 |
Docker 시작하기 (0) | 2017.12.30 |