
애플리케이션을 컨테이너(Container)라는 가벼운 가상화 환경에서 실행할 수 있게 해주는 오픈 소스 플랫폼
도커를 사용하는 이유:
이식성 ->특정 프로그램을 다른곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성
ex) 다른 곳에서 mysql을 문제없이 설치 이후, 내 컴퓨터에 설치하려고 하니 에러가 뜬다.
이유는 버전, 운영체제, 혹은 타 프로그램과 충돌 등 여러가지 이유가 존재.
그리고 매번 컴퓨터 설정 시 설치 과정을 거쳐야 하는 번거로움 있다.
이러한 문제를 한번에 해결하기 위한 툴이 Docker 이다.
즉,
- 매번 귀찮은 설치과정을 거치지 않아도 된다.
- 항상 일관된 프로그램을 설치할 수 있다.(버전, 환경 설정, 옵션 등)
- 독립적인 환경에서 실행되기 때문에 프로그램 간에 충돌이 일어나지 않음
하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념.
- 하나의 환경에서 여러개의 미니 컴퓨터 환경을 구성할 수 있다.
- 여기서 미니 컴퓨터를 컨테이너, 하나의 컴퓨터는 호스트 컴퓨터라 부른다.
컨테이너의 독립성 :
- 디스크(저장공간) : 각 컨테이너 별 저장공간을 가지고 있음 a 컨테이너에서 b 컨테이너 내부 파일에 접근 불가능
- 네트워크 (IP, Port): 각 컨테이너마다 고유의 네트워크(IP)를 가지고 있음.
예를 들어, Mysql 서버를 이미지로 만들었다면, 이 이미지를 Docker로 실행하는 순간 Mysql 서버가 컨테이너 환경에서 실행됨.
mysql 별도 설치 없이 mysql db를 사용할 수 있다.
- 이미지는 프로그램에 필요한 설치과정, 설정, 버전 등을 포함