도커가 뭐고 왜 쓰는건가요?

·2025년 1월 19일

필수영상

목록 보기
11/40

도커가 뭐고 왜 쓰는건가요?


도커(Docker)

컨테이너(Container) 기술을 기반으로 애플리케이션과 필요한 모든 환경(라이브러리, 종속성, 설정 파일 등)을 하나의 패키지로 묶어 어디서든 동일하게 실행할 수 있도록 해주는 오픈 소스 플랫폼.

서버를 돌리기 위한 환경을 구축하는 건 훨씬 복잡하고 머리아픈 일이다.
언어, 웹서버, 데이터베이스, 자동배포툴 등등 여러가지를 버전 신경써서 다운받은 다음 서로 잘 맞물려 동작할 수 있도록 이것저것 설정을 해줘야 하기 때문이다.
그런데 서버를 운영하다보면 더 성능이 좋은 서버로 옮겨가거나 늘어난 접속량을 처리하기 위해 서버를 여럿 추가해야 하게 될 수도 있다.
그럼 그 새로 추가한 서버들에게도 똑같이 다 설치를 해줘야겠죠 ?ㅜㅜ
그나마 같은 사람이 하는거면 좀 번거롭고 끝나는건데, 회사에서 지금은 없는 퇴사한 개발자가 구축해놓은 메뉴얼도 없는 환경이라면 굉장히 머리가 아파지겠죠..
뿐만 아니라 같은 서버에 여러 서비스를 돌리는 경우 각각이 다른 실행환경에서 동작해야 할 때 일이 까다로워질 수도 있다.

이럴 때 도커는 문제를 깔끔하게 해결시켜준다!
먼저 각 요소들이 설치된 모습을 '이미지'란 형태로 박제해서 저장한다.
각 제품마다 공식적으로 제공되는 이미지도 있고, 내가 원하는대로 만들 수도 있다!
Git으로 저장된 내용들이 Github에 올려지는 것처럼 도커 이미지들은 DockerHub이란 곳에
업로드 돼서 공유되고 다운받아 질 수 있다.
그리고 이렇게 이미지로 저장된 항목들이 함께 연결되서 동작하도록 설정된 상태를 명령어 텍스트나 문서 형태로 저장할 수도 있다.
마치 이것들을 설치하는 과정을 어디서든 컴퓨터가 자동으로 재현할 수 있도록 녹화해둔다고 생각하면 된다!!
그러니 이 문서만 잘 보관해두면 이 요소들이 언제 어디서든 도커헙으로부터 받아져서 설치될 수가 있는것이다.

도커는 이것들을 컴퓨터에 바로 설치하지 않는다.
각각을 '컨테이너'라 불리는 독립된 가상 공간을 만들어내서 복원한다.
그래서 서로 다른 버전의 자바를 돌리는 서비스들도 각각의 컨테이너 안에서 서로 방해받는 일 없이 돌아갈 수 있다는 것!


이런 것도 있다니 너무 놀랍고요..? 세상 발전 못따라가겠다..
시간을 내서라도 다른 강의 들어보면서 연습 해보면 정말 좋을것 같다.

0개의 댓글