Container
What is Container?
Container는 App Component 단위로 실행되는 독립적인 프로세스이다.
Host machine으로부터 독립적이고 의존하지 않는다.
즉 Host Machine → 내가 작업하고 있는 로컬 노트북이 되겠다. 뭐 클라우드상에 존재하는 인스턴스일 수도 있고.. 아무튼 동일한 환경에서 동작할 수 있도록 존재하는 것이 Container다.
특징
- Self-Contained
- 각 컨테이너는 Host Machine에 깔려있는 것에 의존하지 않고 실행할 수 있도록 dependency 들을 자체적으로 갖고있다.
- Isolated
- 각 컨테이너들은 고립적으로 실행되고, host나 다른 컨테이너에 영향을 적게 미친다. 이를 통해 어플리케이션의 보안이 강화됨
- Independent
- 각 컨테이너들은 독립적으로 관리되어 특정 컨테이너를 삭제한다고 하여 다른 컨테이너에 영향을 끼치지 않음.
- Portable
- 각 컨테이너는 어디에서든 작동할 수 있다. 데이터 센터든 클라우드 인스턴스든 내 노트북이든 어플리케이션이 같은 방식으로 동작하는 것을 보장한다.
VM과 차이점
VM은 자체적으로 kernel, 하드웨어 드라이버, 프로그램, 어플리케이션 등을 갖고있는 운영체제이다.
만약 3계층 서버를 생각해보았을 때 Front-end, Back-End, DataBase 어플리케이션 별로 VM을 실행시키면 비효율적이다.
그래서 Container를 사용한다.
Container들은 같은 커널 스페이스를 공유하므로 비용 절약이 가능하다.
이렇게 컨테이너별로 가상화를 도와주는 것이 Docker Engine이다.
'CICD > Docker' 카테고리의 다른 글
| DockerFile은 무엇일까? (0) | 2024.09.02 |
|---|---|
| Docker Image란 무엇일까? (6) | 2024.09.02 |