본문 바로가기
CI & CD/Docker & Kubernetes

[Docker] 공식문서 도전기 #4 Containerize

by Riverandeye 2019. 11. 4.

이 과정에서는 단계가 3단계로 이루어져있다.

 

1. 도커 이미지를 통해 컨테이너를 만들고 작동시켜보자.

2. 컨테이너들을 한데 모아 쿠버네티스 yaml 파일로 조립해보자.

3. 컨테이너화한 어플리케이션을 테스트, 공유, 디플로이 해보자.

 

먼저 예시 프로젝트를 클론해보자.

클론된 폴더의 bulletin board app 이 우리가 컨테이너화 할 앱이다.

 

package.json이 있는 위치에 Dockerfile이 있다. 안에는 이렇게 적혀있다.

 

Dockerfile

도커파일로 컨테이너화를 할건데, 파일시스템을 어떻게 통합할건지, 어떤 이미지를 기반으로 작동시킬건지 등을 입력해준다. 위에서부터 해석해보자. 

FROM node:6.11.5 - nodejs 6.11.5 -> nodejs 이미지를 사용하겠다.

 

WORKDIR /usr/src/app -> 모든 subsequent action을 image filesystem 내의 /usr/src/app 에서 수행하겠다 이거입니다.

COPY package.json . -> package.json을 WORKDIR에다 복사하겠다 이겁니다. 

RUN npm install -> package.json 의 dependency 설치

COPY . . 현재 위치의 모든 파일을 WORKDIR에 설치하겠다는 뜻

 

CMD [ "npm", "start" ] -> npm start를 cmd에서 수행하기

 

Build

 

도커 이미지를 빌드하고, 빌드한 이미지를 오른쪽 이름으로 등록하기.

-t 는 <저장소 이름>/<이미지 이름>:<태그> 를 설정하는 것이다.

 

만들어진 도커 이미지

도커 이미지가 만들어진 것을 확인할 수 있다.

이제 만들어진 도커 이미지를 바탕으로 컨테이너를 실행시켜보자.

 

도커 컨테이너를 run 시키되

--publish는 컨테이너 내부(컨테이너)의 8080포트는 외부(클라이언트)에서 8000 포트로 바인딩

--detach는 컨테이너를 백그라운드에서 실행시키겠다는 것이다.

--name은 실행시킨 컨테이너의 이름을 정의해주는 것이다.

 

run 시키고 localhost:8000으로 접속하면 밑에와 같은 컨텐츠가 등장한다.

 

 

생각보다 간단하네? 흠.. 계속 해보자.

댓글