도커란 무엇인가?
1. 도커가 탄생한 배경 ?
서버를 관리하기 어려워서 탄생하게 되었다.
서버를 처음 설정하게 되면 사용자를 만들고 방화벽, 네트워크 설정, 디펜던시 추가 … 등등 복잡한 일련의 과정을 통해 설정했다.
서버에 다운 받아져 있는 라이브러리들이 업데이트가 필요하면 서버 안에서 잘 돌아가면서 사용하고 있던 라이브러리에서 문제가 발생할 수 있다.
어떤 한 부분에서 문제가 발생하면 프로그램의 작동 여부에 큰 영향을 미쳤다.
서버를 관리하기 위해 과거부터 노력을 했었는데
1. 문서로 관리
2. 설정 파일로 관리
코드로 설정 파일 관리
한 서버에 다른 버전 여러개 설치가 어려움
3. 가상 머신으로 관리
느림
가상 머신을 여러개 이용해서 하나씩 띄워 사용
처음부터 다시 셋팅을 할때 어떤식으로 만들었는지 모름
4. 자원 격리
프로세스, 파일, 디렉토리를 가상으로 분리 (실제로 같은 장소에 있지만 다른 장소에 있도록)
CPU, MEMORY, I/O 성능을 그룹별 제한 리눅스 기능을 이용한 서버 관리 기술이 너무 어려워 사용하기 어려움
그래서 리눅스 기능을 이용해서 빠르게 효율적인 서버 관리를 할 수 있도록 Docker가 등장했다.
2. 도커란?
VM(가상머신) vs Docker(도커 컨테이너)
두개의 차이점은 무엇일까?
가상머신은 하이퍼바이저(Hypervisor)을 이용해서 여러개의 운영체제를 하나의 호스트에 생성해서 사용하는 방식 여러개의 운영체제는 가상 머신(Virtual Machine)이라고 구별되고 운영체제가 설치되어 사용된다.
이 부분이 가상머신의 성능을 저하 시킨다.
하지만 도커는 가상머신이 아니라 격리만 해주는 역할을 한다.
따라서 성능 저하가 없다.
도커란?
성능 저하 없이 다른 프로세스와 격리되어 사용할 수 있도록 도와주는 도구.
컨테이너 기반의 오픈소스 가상화 플랫폼
도커의 특징
확장성/이식성
-> 어디서든 컨테이너를 실행할 수 있다.표준성
-> 어떤 언어로 컨테이너라는 표준 서버로 배포해 배포 방식과 과정이 동일해진다.이미지
-> 이미지는 컨테이너를 실행하기 위한 압축파일
-> 이미지 만드는 과정이 필요하다설정 관리
-> 설정은 보통 환경변수로 제어자원 관리
-> 컨테이너는 삭제하면 데이터가 초기된다
-> 별도의 저장소가 필요
[참고 블로그]
https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html https://seosh817.tistory.com/345