Docker와 CI 환경 #1

최민석·2021년 1월 30일
3

Docker

목록 보기
1/5


도커의 개념

애플리케이션을 쉽고 간단하게 구축, 테스트 및 배포를 도와주는 하나의 소프트웨어 플랫폼 입니다.

알고 있던 지식(파이썬 가상환경)과 비교하자면, 완전 다른 원리와 개념이지만,
pythonvenv 가상환경과 vm가상머신 비교해서 봐보자.

파이썬 가상 환경(venv)

로컬 컴퓨터에 다운받아서, 다른 프로그램들과 개발환경에 대해 충돌하는 등
이러한 상황을 방지하기 위해 가상의 "공간"을 만들어서 여러 개발환경을 구축하는 방식이다.
패키지를 다운 받고(pip install ...), 불러다가 사용하는 경우이다.

가상 환경에서만 실행 가능케 하도록 한다는 것이 도커의 "컨테이너"와 비슷한 개념이 든다.

vm(가상 머신)

물리적인 하드웨어 시스템에 구축되어서 자체CPU, 메모리, 네트워크 인터페이스 등을 가지고,

가상 컴퓨터 시스템으로 작동되는 가상환경

맥에서 동시에 윈도우를 킬 수 있듯이, 또 다른 컴퓨터는 가상화해서 만든 것!

이 처럼 가상환경을 가지고 도커가 이용 된다는 점을 알고 시작해보자.


도커를 쓰는 이유?

간단하게 예시로 Redis를 다운받는 과정을 살펴보자.

도커를 사용하지 않았을 때

두 가지 상황을 분류해보았다.

윈도우를 쓰는 이용자
1. Installer 다운로드
2. Installer 실행
3. 프로그램 설치완료

맥을 쓰는 이용자
1. Installer 다운로드
2. Installer 실행
3. 에러 발생

이런식의 서로 다른 OS 및 패키지나 설정 차이로
여러가지 오류로 다운
받기가 굉장히 번거롭다.

도커를 사용했을 때

맥/윈도우/리눅스 등 전부 해당되는 이용자
1. CLI에 docker run redis
2. 완료

위와 같은 경우가 도커의 사용 이유를 말해주고 있다.
도커에서 만든 가상 개발 환경을 통해 어떠한 개발 환경에서도
실행할 수 있어서 매우 편리하게 개발 환경을 세팅 할 수 있다는 점!


도커란 무엇인가?

도커에서 중요한 두 개념이 있다.

이를 통해서 도커 자체 방식이 어떤지, 더 깊은 내용은 어떤지 알 수 있었다.

도커 컨테이너

도커 컨테이너란?
여러가지 프로그램들 사용을 실행 가능하게,
개발환경과 라이브러리가 세팅 된 위한 하나의 가상 환경

이러한 도커 컨테이너는
위에 명시한 VM과 가상환경에 대해 비교하여 알 수 있다.

비슷해보이지만, 도커는 VM에 비교해 엄청난 장점이 있다는 점!
다음 포스트에서 비교해봐야겠다.

도커 이미지

도커 컨테이너 생성을 위한 환경 모음이라고 생각하면 된다.

도커 이미지 구성내용으로는

  1. 프로그램을 실행을 위한 명령어
  2. Data Snapshot (프로그램 다운로드에 필요한 파일)

이 존재하게 된다. 이를 가지고 여러 "도커 컨테이너"를 구성하게 할 수 있다.

최종적인 도커 이미지와 컨테이너 구성

간단하게 표현한 도커 이미지와 컨테이너 관계이다.
즉, 이미지로 컨테이너를 만들어 프로그램을 실행 한다고 생각하면 된다.

여기까지가 도커에 대한 기본적인 구성이였다.
다음 포스트는 도커의 흐름과 과정을 알아보도록 하자.

profile
되돌아보며 성장합니다🔨

0개의 댓글