저장을 습관화
docker에 대한 이해 본문
docker는 현재 사용 중인 컴퓨터의 자원을 활용하여 격리된 환경인 컨테이너를 생성하는 플랫폼이다.
예전에 사용하던 VMware가 사용자의 컴퓨터에서 일정량의 cpu core와 메모리를 할당받고,
그 리소스를 사용해 사용자의 컴퓨터와 별개의 OS 환경을 구축하는 시스템이었다면
(컴퓨터는 건물주, VMware는 세입자의 이미지?)
docker는 사용자의 리소스와 OS까지 그대로 같이 공유하면서도,
사용자의 컴퓨터 환경과는 별개의 환경을 운영할 수 있게 해준다.
이를 컨테이너라고 한다.
(게스트하우스라고 설명해도 될까? 컴퓨터는 게하 주인, docker는 손님?)
(엄밀히 따지면 다르지만 대충 그런 느낌)
사용자의 리소스와 OS를 공유한다는 말은, 당연히 네트워크 환경도 공유하게 된다는 의미이다.
그렇다면 기존 컴퓨터 환경과 docker는 동시에 동일한 포트로 서비스를 할 수 있을까?
예를 들어 사용자의 컴퓨터의 아이피가 1.1.1.1이고
사용자가 docker를 사용해서 웹서버(포트 80)을 운영 중일때,
사용자가 실수로 docker가 아닌 자신의 환경에서 포트 80의 어플리케이션을 가동시킨다고 하자.
이때 docker는 '네트워크 포트의 사용은 호스트가 우선권을 가진다.'는 법칙에 따라서
포트 80의 사용을 사용자의 기본 컴퓨터에 넘겨준다.
만약 docker를 사용해서 서비스를 운영 중이었다면 장애가 발생하는 상황이다..
기억해두고 조심하도록 해야겠다.
docker를 DB서버의 용도로만 사용했었는데
배포를 공부하고 있으니 생각보다 많은 사람들이 규모가 작은 프로젝트라면
AWS보다 docker를 사용한다는 것을 알게 되었다.
'공부 > 메모' 카테고리의 다른 글
GitHub 커밋 삭제 (0) | 2024.01.17 |
---|---|
쿠키는 왜 이름이 쿠키일까.. (0) | 2024.01.16 |
API, REST API, RESTful API (0) | 2024.01.08 |
메모 - 백엔드 개발자 기술 면접 질문 저장소 (0) | 2024.01.05 |
AWS RDS MySQL DB Timezone 변경 (0) | 2023.11.18 |