[따배도] 4-1. Container 만들기 (이론)

( 참고 : 따배도 https://www.youtube.com/watch?v=NLUugLQ8unM&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi )

Contents

  1. 무엇을 Container로 만드는 것인가?
  2. Container는 어떻게 만드는가? Docker File이란?
  3. 내가 만든 Container를 배포하려면?


Q1. 무엇을 Container로 만드는 것인가?

Container

​ = 개발한 application과 운영 환경이 모두 들어가 있는 독립된 공간


MSA ( Micro Service Architecture ) 환경의 Polyglot applcication

ex) 전체 e-commerce 플랫폼을 운영하기 위해,

  • shopping cart / competed orders / Inventory 등 다양한 서비스가 있고

    각각에 알맞은 독립적인 container들을 사용한다

    ( 해당 상황에 적합한 OS/프로그래밍 언어를 선택할 수 있다 )

  • 즉, 각각의 application service에 맞춰서 container를 만들어낼 수 있다.

figure2



Q2. Container는 어떻게 만드는가? Docker File이란?

DockerFile?

= Conatiner를 만들 수 있도록 도와주는 명령어 집합

  • 쉽고, 간단한 text file
  • Top-Down 해석
  • 고유의 지시어 (Instruction)을 가짐
  • 대소문자 구분 X ( BUT 가독성 위해 명령어는 대문자로 )


figure2


example )

$mkdir build

$cd build

$vi dockerfile
FROM node:12
COPY hello.js /
CMD ['node','/hello.js']

$docker build -t imagename:tag .

FROM 뒤에는 “운영 환경”

figure2


어떠한 형태로 container를 설계할지 기획한 뒤, 이에 맞게 docker file를 만 든다.


Q3. 내가 만든 Container를 배포하려면?

docker build를 사용해서 container를 만들었다.

이를, 다른 사람들이 사용할 수 있게 하기 위해 배포해야한다. ( to Private Hub / Public Hub )

아무나 Hub에 배포할 수 없기 때문에, 로그인을 해줘서 인증을 받아야한다.

  • docker login
  • docker push hellojs:latest


EXAMPLE : Docker File 확인해보기

figure2

  • https://hub.docker.com/search?type=image에 접속


figure2

  • mysql 컨테이너


figure2

  • 가장 최신 버전의 도커 파일


figure2

  • 도커파일 확인