도커란 데이터 또는 프로그램을 격리시키는 기능을 하는 소프트웨어이다.
구조

일반적인 도커의 구조.

윈도우에서의 도커의 구조. 도커는 리눅스용으로 설계되었기 때문에, 윈도우용 도커 패키지에는 리눅스를 윈도우 상에 올리기 위한 하이퍼바이저와 가상 머신이 포함되어 있다. 즉, 윈도우 → (가상 머신 위의) 리눅스 → 도커 형식.
특징
장점
- 환경이 독립되어 있다.
- 동일한 프로그램을 한 컴퓨터에 여러 개 설치, 실행할 수 있다 (일반적으로는 불가능).
- 예를 들어 A 프로그램은 아파지 5.0 버전으로만 실행가능하고, B 프로그램은 아파치 8.0 버전으로만 실행 가능한 경우, 도커를 사용하면 서로 다른 컨테이너에 각각 5.0, 8.0 버전을 설치함으로서 간단하게 해결할 수 있다.
- 프로그램 간의 충돌, 간섭을 예방할 수 있다.
- 이미지를 만들 수 있다.
- 컨테이너에 ‘커널’을 포함시지 않으며, 운영체제의 주변 영역만을 포함한다.
- 따라서 가볍다.
- 또한 컨테이너에 올라가는 운영체제의 배포판을 자유자재로 바꿀 수 있다.
단점
- 리눅스 운영체제를 사용하는 것을 전제로 만들어졌기 때문에 리눅스용 소프트웨어 밖에 지원하지 않는다.
- 물리 장치 하나에 여러 개의 컨테이너를 띄우는 형태이기 때문에 호스트 서버에 문제가 생기면 여러 컨테이너에 영향이 미친다. 따라서 물리 장치의 이상에 확실한 대책을 세워야 한다.
- 애초에 컨테이너 여러 개를 사용하는 형태를 가정하여 만든 기술이므로 컨테이너 하나를 장시간에 걸쳐 사용할 때는 큰 장점을 느끼기 어렵다. 도커를 사용하려면 반드시 도커 엔진을 구동해야 하는데, 컨테이너를 하나밖에 사용하지 않으면 도커 엔진이 단순한 오버헤드에 지나지 않는다.
단점
- 리눅스에서 사용되는 것을 전제로 만들어졌기 때문에 리눅스 운영체제가 필요하다.
- 따라서, 도커의 컨테이너에서 동작할 수 있는 프로그램도 리눅스용 프로그램으로 한정된다.
본격적인 도커 사용법은 도커 명령어를 참고.
참고자료