Docker란?

현서황·2024년 10월 19일

Docker

목록 보기
1/9

도커는 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구이며, 컨테이너 기반의 오픈소스 가상화 플랫폼이자 생태계이다.

컨테이너?


도커 이미지와 도커 컨테이너 정의

컨테이너는 코드와 모든 종속성을 패키지화하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위이다.

➡ 현재까지 여러 가지 방향으로 컨테이너를 정의할 때 간단하고 편리하게 프로그램을 실행시켜주는 것으로 정의를 내리고 있다.


컨테이너 이미지는 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용 프로그램을 실행하는데 필요한 모든 것을 포함하는 가볍고 독립적이며 실행 가능한 소프트웨어 패키지이다.
또한, 컨테이너 이미지는 런타임에 컨테이너가 되고 도커 컨테이너의 경우 도커 엔진에서 실행될 때 이미지가 컨테이너가 된다.
리눅스와 윈도우 기반 애플리케이션 모두에서 사용할 수 있는 컨테이너화 된 소프트웨어는 인프라에 관계 없이 항상 동일하게 실행된다.

컨테이너는 소프트웨어를 환경으로부터 격리시키고 개발과 스테이징의 차이에도 불구하고 균일하게 작동하도록 보장한다.

도커 이미지는 프로그램을 실행하는데 필요한 설정이나 종속성을 가지고 있으며 도커 이미지를 이용해 컨테이너를 생성하며 도커 컨테이너를 이용해 프로그램을 실행한다.


도커를 쓰는 이유는 무엇인가?

어떤 프로그램을 다운로드 하는 과정을 굉장히 간단하게 만들기 위해서 사용한다.

도커 없이 프로그램을 받을 때는 installer 내려받고, 그걸 실행하면 된다. 그런데, 갖고있는 서버, 패키지 버전, 운영체제 등등에 따라 프로그램을 설치하는 과정에서 많은 에러가 발생한다. 그것만이 아니라 설치 과정이 다소 복잡하다.

실제 redis 다운로드 과정으로 예시를 들어보면,
도커 없이 다운로드를 받기 위해서는

이런 과정을 거쳐야한다.
하지만 wget 명령어를 사용하기 위해서는 또 설치과정이 필요하여 오류가 발생하고 복잡하다.
즉, 특정 프로그램을 받을 때 거기에 맞는 부수적인 것들도 계속 받으며 설치하는 과정이 복잡해지고 에러도 많이 생긴다.

반면!
도커로 Redis를 받으려고 하면,
docker run -it redis만 치면 다운로드가 완료된다.

즉, 도커를 이용해 프로그램을 설치하면 예상치 못한 에러도 덜 발생하며, 설치하는 과정도 훨씬 간단해지기 때문에 도커를 사용한다.


이미지로 컨테이너 생성하는 방법

그렇다면, 어떻게해서 컨테이너를 생성하는 것일까?

이미지는 응용 프로그램을 실행하는데 필요한 모든 것을 포함하고 있다.

필요한 모든 것

  1. 컨테이너가 시작될 때 실행되는 명령어
  2. 파일 스냅샷
    ex. 컨테이너에서 카카오톡을 실행하고싶다면, 카카오톡 파일(카카오톡을 실행하는데 필요한 파일) 스냅샷

파일 스냅샷은 디렉토리나 파일을 카피한 것이다.


이미지로 컨테이너 만드는 순서

  1. Docker 클라이언트에 docker run<이미지> 입력해준다.
  2. 도커 이미지에 있는 파일 스냅샷을 컨테이너 하드 디스크에 옮겨준다.
  3. 이미지에서 가지고 있는 명령어(컨테이너가 실행될 때 사용될 명령어)를 이용해서 카카오톡을 실행시켜준다.
profile
노는 게 제일 좋은 뽀로로

0개의 댓글