-
[Docker] Docker란 무엇이고 왜 사용할까?DevOps/Docker 2021. 3. 29. 14:24728x90반응형
Docker를 사용하는 이유
어떤 프로그램을 다운받아 사용한다면 일반적으로 위와 같은 과정을 거치게 됩니다. 하지만 실제로 많은 서버들과 다양한 운영체제, 패키지 버전 등등 이유로 프로그램을 설치하는 과정에서 에러가 발생하게 됩니다.
A라는 서버에서는 됐는데 B라는 서버에서는 안될 수도 있고.. 이러한 문제들을 가지고 있습니다. 또한 설치 과정도 그렇게 쉽지만은 않습니다.
도커는 이러한 설치 과정을 엄청나게 단순하게 만들 수 있습니다.
Redis 설치 비교해보기
Docker를 이용해서 Redis를 설치할 때와 Redis를 직접다운 받을 때의 차이를 비교해보겠습니다.
$ wget https://download.redis.io/releases/redis-6.2.1.tar.gz $ tar xzf redis-6.2.1.tar.gz $ cd redis-6.2.1 $ make
먼저 Docker를 사용하지 않고 Redis를 다운 받으면 위와 같이 명령어를 입력해주라고 나옵니다. 하지만 이것을 사용하기 위해서는 wget도 설치해야 하고 생각보다는? 번거로운 일들이 조금씩 존재합니다.
이번에는
Docker
를 이용해서 Redis를 다운받아 보겠습니다. (물론 Docker를 설치하긴 해야 합니다..)docker run -it redis
그러면 위와 같이 바로 Redis를 설치하지 않았음에도 불구하고
Redis
를 사용할 수 있는 터미널로 접속하는 것을 볼 수 있습니다. 훨씬 간단하고 편리한 것을 느낄 수 있을 것입니다.Docker란 무엇일까요?
한마디로 무엇이다 라고 표현하기는 힘들지만, 간단하게라도 Docker가 무엇인지를 알아보겠습니다.
컨테이너
를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구이며 컨테이너 기반의 오픈소스 가상화 플랫폼이며 생태계입니다.컨테이너
란 무엇일까요?실제 현실에서 사용하는
컨테이너
처럼 컨테이너 안에다양한 프로그램
,실행환경
을 컨테이너 안에 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해주는 것입니다.컨테이너는 코드와 모든 종속성을 패키지화하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위이다.
정의를 보고 컨테이너가 이런 것이구나 라고 바로 와닿지는 않지만, 카톡 컨테이너라고 치면 카톡이 실행할 수 있게 필요한 환경, 프로그램들을 담아놓은 것? 이라고 생각하면 좋을 거 같습니다.
Docker 이미지와 컨테이너란?
Docker 이미지
: 프로그램을 실행하는데 필요한 설정이나 종속성들을 갖고 있습니다.Docker 컨테이너
: 이미지의 인스턴스이며 프로그램을 실행합니다.
Docker 실행 흐름
CLI에서 Docker 명령어 입력
도커 서버(Docker Daemon)이 커맨드를 받아서 그것에 따라 이미지를 생성하든 컨테이너를 실행하든 모든 작업을 하게 됩니다.
docker run hello-world
위와 같이
hello-world
이미지를 Docker hub에서 다운 받은 후에 바로 컨테이너를 실행하는 것을 볼 수 있습니다.전체적인 흐름을 정리하면 위와 같이 진행됩니다.
Dockerhub
에는 정말 많은 이미지들이 있는데 여기서 나의 로컬 컴퓨터에 다운 받지 않은 이미지라면 새로 다운받게 되고, 다운 받은 적이 있다면Image Cache
에 저장이 되어 있어 새로 다운 받지 않습니다.이렇게 엄청 간단하게 Docker란 무엇이고 간단한 내부 흐름을 알아보았습니다.
반응형'DevOps > Docker' 카테고리의 다른 글
[Docker] EC2에서 Docker 컨테이너를 활용하여 웹 서버 실행하기 (0) 2021.03.29 [Docker] Docker Image로 Container를 만드는 과정 (0) 2021.03.29 [Docker] Docker 간단한 명령어로 실습해보기 (0) 2021.03.29 [Docker] Docker Image를 직접 만들어 보기 (1) 2021.03.29 [Docker] Docker와 기존 가상화 기술의 차이 알아보기 (0) 2021.03.29