해당 글을 읽고 와주세요!
✒️ 4. 컨테이너와 도커
💡 컨테이너
애플리케이션과 그 종속성을 함께 패키징하여 운영 체제 수준에서 격리된 환경에서 실행할 수 있는 기술.
컨테이너는 가볍고 빠르게 시작되며, 애플리케이션의 일관된 실행 환경을 제공한다!
코딩 입문자 중에 아마 절반 이상은
환경설정하고 버전 맞추다가 그냥 에러 투성에 뭐가 문제인지도 모르고 나가 떨어졌을 것이다...
그리고 또 여기서 잘 되던 것들이 다른 서버에서는 안돌아가는 미쳐버리는 상황도 많이 마주했을 것이다.
쉽게말해
어떤 코드에서 dependancy들이 얽혀 있는 애플리케이션이 요짝 컴퓨터 저짝 서버로 옮겨다니면,
여기서는 실행되고 저기서는 실행이 안되는 경우가 많았을 것이다...
그런데! AWS EC2에 올리는 것도 남의 컴퓨터(다른 환경)에 나의 코드를 돌리는 것이다.
여기에 포함된 수많은 종속성들... 어떻게 다 끌고가서 맞출 것인가!
오케이, 뭐 다른 서버에서 돌리기 까지 했어!
그런데 만약에 여러 서버에 같은 프로그램을 띄워야 한다면...?
매번 리눅스 터미널에서 mysql 깔고, npm 하고 앉아 있고, 환경변수 맞추고 있고........
아냐아냐 이건 아니야.
-> 바로 그러한 종속성들을 어플리케이션과 함께 패키징 하여 OS 수준에 얽매이지 않는 박스를 하나 만들어 들고 다니는 것이다.
느낌이 중요하다고 했다. 그 모든 걸 감싸 안아 가져가는 것.
그 BOX가 바로 컨테이너
컨테이너 통채로 이사해버리자.
컨테이너는 OS를 공유하기 때문에 빠르고, 경량화되어있으며 격리성도 훌륭하다.
💡 도커
그래서 맨날 도커 컨테이너 도커 컨테이너...
도커 컨테이너가 뭔데??
도커는 컨테이너 필요한 기능을 거의 모두 제공하는 플랫폼이다.
애플리케이션 구동에 필요한 환경설정관련 절차를 도커파일에 작성하고 (Script 작성)
그 후 빌드를 하면 도커이미지가 생성이 되고 도커이미지를 실행시키면 도커컨테이너가 만들어진다.
그 후 도커컨테이너에 설정된 프로그램, 데이터 등이 실제 컴퓨팅자원 위에서 돌아가게 된다.
💡 도커의 활용사례
이렇게 만들어지는 도커 컨테이너를 기반으로 클라우드에 컨테이너 배포 방식으로 서비스가 많이 운영되고 있다.
요즘 구글에서 만드는 서비스들 대부분이 도커 컨테이너에 기반하여 쓰이고 있으며 매주 약 20억개의 서비스가 운영된다고 한다.
📝 면접 예상 질문
도커 관련 질문은 CS 적이라기 보다 기술 질문이어서.. 다음 기회에..