[따배도] 4-1. Container 만들기 (이론)
( 참고 : 따배도 https://www.youtube.com/watch?v=NLUugLQ8unM&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi )
Contents
- 무엇을 Container로 만드는 것인가?
- Container는 어떻게 만드는가? Docker File이란?
- 내가 만든 Container를 배포하려면?
Q1. 무엇을 Container로 만드는 것인가?
Container
= 개발한 application과 운영 환경이 모두 들어가 있는 독립된 공간
MSA ( Micro Service Architecture ) 환경의 Polyglot applcication
ex) 전체 e-commerce 플랫폼을 운영하기 위해,
-
shopping cart / competed orders / Inventory 등 다양한 서비스가 있고
각각에 알맞은 독립적인 container들을 사용한다
( 해당 상황에 적합한 OS/프로그래밍 언어를 선택할 수 있다 )
-
즉, 각각의 application service에 맞춰서 container를 만들어낼 수 있다.
Q2. Container는 어떻게 만드는가? Docker File이란?
DockerFile?
= Conatiner를 만들 수 있도록 도와주는 명령어 집합
- 쉽고, 간단한 text file
- Top-Down 해석
- 고유의 지시어 (Instruction)을 가짐
- 대소문자 구분 X ( BUT 가독성 위해 명령어는 대문자로 )
example )
$mkdir build
$cd build
$vi dockerfile
FROM node:12
COPY hello.js /
CMD ['node','/hello.js']
$docker build -t imagename:tag .
FROM 뒤에는 “운영 환경”
어떠한 형태로 container를 설계할지 기획한 뒤, 이에 맞게 docker file를 만 든다.
Q3. 내가 만든 Container를 배포하려면?
docker build
를 사용해서 container를 만들었다.
이를, 다른 사람들이 사용할 수 있게 하기 위해 배포해야한다. ( to Private Hub / Public Hub )
아무나 Hub에 배포할 수 없기 때문에, 로그인을 해줘서 인증을 받아야한다.
docker login
docker push hellojs:latest
EXAMPLE : Docker File 확인해보기
- https://hub.docker.com/search?type=image에 접속
- mysql 컨테이너
- 가장 최신 버전의 도커 파일
- 도커파일 확인