Docker(도커)란?

KIMA·2022년 7월 12일
1

docker

목록 보기
1/2
post-thumbnail

도커의 필요성

백엔드 쪽을 예시로 들어보면, 백엔드 개발을 위해 언어, 웹 서버, DB, 자동 배포 툴 등 다양한 프로그램들이 필요한데 이를 한꺼번에 관리하기가 어렵다. 따라서 개발 환경이 바뀌었을 때 많은 프로그램들을 재설치하는 과정이 매우 번거롭다. 또한, 다른 환경에서 정상적으로 동작하던 MySQL이 내 환경에서는 OS, 버전, 다른 프로그램(e.g. 보안 프로그램)과의 충돌 등의 이유로 정상적으로 설치되지 않을 수 있다.

하지만 도커를 사용하면 어떨까?
도커는 백엔드 시스템 개발에 필요한 프로그램들을 모두 묶어 패키지로 만들 수 있으며, 이 패키지 하나만 있다면 다른 개발 환경에서도 일관되고(버전, 환경 설정, 옵션, OS 등) 간편하게 프로그램들을 설치할 수 있다.
또한, 각 프로그램이 독립적인 환경에서 실행되기 때문에 기존에 존재하던 프로그램과 분리된 환경에서 새로운 프로그램을 실행할 수 있다.

도커란?

컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다.

컨테이너란?

윈도우 환경을 사용해보면 하나의 컴퓨터를 여러 사용자로 나누어 사용할 수 있다. 각 사용자의 환경에 접속해보면 독립적으로 구성되어 있어, 필요한 프로그램을 각 사용자 환경에 따로따로 설치해줘야한다.

컨테이너도 이와 비슷한 개념이다. 호스트 컴퓨터라고 불리는 하나의 컴퓨터 환경 내에서 컨테이너라는 독립적인 컴퓨터 환경을 구성해 각 환경에 프로그램을 별도로 설치할 수 있다.
이때, 각 컨테이너마다 다음의 자원들이 독립적으로 관리된다.

  • 디스크 : 일반적으로 다른 컨테이너 내부에 있는 파일에 접근할 수 없다.
  • 네트워크 (IP, Port) : 컨테이너마다 각자의 IP 주소를 가지고 있다.

이미지란?

MySQL 서버를 이미지로 만들었다면, 이 이미지를 도커 명령어로 실행시키는 순간 MySQL 서버가 컨테이너 환경에서 실행된다.
즉, 이미지는 프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 모두 포함하고 있다.
이 이미지는 docker hub 같은 docker registry에서 다른 사람들과 공유할 수 있다.

Reference

profile
안녕하세요.

0개의 댓글