Docker 너는 누구냐..?

mangjell·2022년 6월 7일
0
post-thumbnail

귀여운 고래위에 컨테이너를 쌓아올린 마크 너무 귀염뽀작하다!

이름은 docker(도커)인데 어떤 녀석일까?

Docker(도커)란?

  • 나는 이렇게 얘기하고 싶다. 어플리케이션을 패키징 할 수 있는 유용한 툴이라고!

  • 그리고, 우리가 만든 어플리케이션을 구동하는데 필요한 모든 것들을 docker container안에 담아 넣는 것이다.

이 포인트에서 문득 VM이랑 비슷한 녀석같아 보였다. 하지만 둘은 다르다!

VM vs. Docker Container

간단하게 차이점을 말해보면,

  • VM은 운영체제를 포함한다 => 즉, 무겁다! 라고 표현할 수 있다.
  • Docker Container는 운영체제를 포함하지 않는다 => 즉, 경량화 되었다! 라고 표현할 수 있다.

그렇다면 Docker(도커)의 순서는 어떻게 될까?

Docker의 순서

순서에는 크게 3가지가 있는데,
먼저 한줄로 얘기하자면,Container를 만들고, 배포하고, 구동하는 방식이다!

1. Container 만들기!

  • Dockerfile을 만들어야한다.(container를 어떻게 만들어야 하는지에 대한 "설명서" 이다)
  • 해당 dockerfile 안에는 아래의 요소들이 들어간다!
	- 어플리케이션을 구동하기 위해 꼭 필요한 파일은 무엇이 있는지?
    - 어떤 프레임워크 혹은 라이브러리들을 설치 해야하는지
    - 외부 dependencies에 대해 명시 가능
    - 필요한 환경변수 설정 가능
    - 어떻게 구동해야하는지 script로 포함 가능

2. Image

  • dockerfile을 이용해서 image를 만들 수 있다
  • 여기서 image란?
    - image: 실행되고 있는 어플리케이션의 상태를 스냅샷하여 이미지로 만들어두는 것이다!!(이때의 만들어진 이미지는 불변한 상태이다.)

3. Container

  • 우리가 캡쳐해둔 어플리케이션의 이미지를 고립된 환경(개별적인 파일시스템)에서 실행할 수 있다.
  • 한줄요약: _image를 이용해서 어플리케이션을 구동!

그렇다면 도커 이미지 배포 과정을 한눈에 알아보자!

도커 이미지 배포 과정

  1. 로컬에 도커를 설치한다, 서버에도 도커를 설치한다.
  2. dockerfile을 작성하고, image를 만든다(build하는 과정)
  3. Container Registry에 "image"를 푸시한다!
    • container registry: ex) aws, GCP, Microsoft Azure
  4. 서버에서 다운받고(pull 받기) container를 실행한다
profile
프론트엔드 개발자

0개의 댓글