컨테이너 Container
https://www.docker.com/resources/what-container
컨테이너는 오버헤드를 최소화하기 위한 방법입니다. 호스트 OS 상에 독립적인 공간을 만들고 별도의 서버인 것처럼 사용합니다. 따라서 각 컨테이너는 같은 호스트 OS 를 공유하기 때문에 오버헤드가 적고 고속으로 동작합니다. 항구의 컨테이너처럼 안에 필요한 것을 모두 담고 다른 컨테이너와 격리시켜놓은 것이라고 볼 수 있습니다.
컨테이너는 애플리케이션 실행에 필요한 모듈을 하나로 모을 수 있기 때문에 여러 개의 컨테이너를 조합해서 하나의 애플리케이션을 구축하는 마이크로서비스와 잘 맞습니다.
도커 Docker
도커는 애플리케이션 실행에 필요한 환경을 이미지로 만들고 해당 이미지를 활용해 다양한 환경에서 실행 환경을 구축하기 위한 오픈소스 플랫폼입니다. 도커는 내부에서 컨테이너를 사용합니다.
일반적인 개발 환경에서는 잘 동작하다가 갑자기 스테이징이나 운영 환경으로 가면 동작하지 않는 경우가 있습니다. 이런 인프라 환경을 도커를 이용해 컨테이너로 관리하면 어떨까요? 필요한 것을 모두 컨테이너로 모아서 이미지로 만드는 것입니다.
좀 더 자세히 보면 개발자가 커밋을 할 때마다 CI 를 통해 도커 이미지로 빌드를 하고 해당 이미지를 관리합니다. 그리고 개발 환경이든 테스트 환경이든, 실제 운영 환경이든 해당 이미지를 배포하면 컨테이너에서 독립적으로 배포된 환경에서 동작하기 때문에 오류 없이 동작할 수 있습니다.(컨테이너 공간안에서 실행이 되기 때문에 실행되는 곳의 환경 조성을 굳이 하지 않아도 된다.) Scale up, Scale out 기능을 활용해 유연하게 대처할 수 있다.
도커를 리눅스에서 실행해야 하는 이유 ( 윈도우, mac 에서도 실행이 가능하다.)
도커(Docker)는 리눅스 커널의 기능을 써야하고 그 기능의 핵심 3가지는
chroot : 독립된 공간 형성 그리고 이 독립된 공간 안에다가
namespace : 6가지 isolate 기능을 지원해준다.
cgroup : 필요한 만큼 HW를 나눠줄 수 있으며 이 세가지의 핵심적인 기능을 통해 컨테이너를 만들 수 있다.
윈도우, mac에서는 Hiper-v 기능을 활용해 컨테이너를 올린다.
'Docker' 카테고리의 다른 글
컨테이너 보관 창고 - 이론 (0) | 2021.05.30 |
---|---|
Docker 컨테이너 만들기 - 실습 (0) | 2021.05.29 |
Docker 컨테이너 만들기 (이론) (0) | 2021.05.29 |
Docker 실습 (이미지 검색, 이미지 다운로드) (1) | 2021.05.27 |
Docker 설치(CentOS,Ubuntu) (0) | 2021.05.26 |