Programming/ETC
도커, 컨테이너, 쿠버네티스의 개념
리버김
2025. 5. 26. 22:55
FE 개발자여서 그동안 도커를 쓸 일이 거의 없었는데, 올해부터 백엔드(Express) 쪽 코드에 관련된 일들을 하게 되면서 도커를 쓰고 있다. 도커와 함께 자주 볼 수 있는 컨테이너, 쿠버네티스의 개념까지 잘 정리한 영상들이 있어서 따로 정리해본다.
https://www.youtube.com/watch?v=eRfHp16qJq8
https://www.youtube.com/watch?v=e0koWWAmXSk
컨테이너
- 서버의 한 종류
- VM(가상 머신)은 프로그램 실행에 오래 걸림
- 컨테이너도 가상화 기술은 맞지만(한 대의 서버에서 여러 프로그램 실행) 더 가볍고 빠르다. 컨테이너 안에 모든 요소를 다 넣어 놓고 필요할 때마다 컨테이너 단위로 서버 안에 넣었다 빼면 되기 때문이다.
도커
- 우리는 컨테이너 전문가가 아니기 때문에 컨테이너를 만들고 관리하기 어렵다. 이 때 컨테이너를 관리해주는 전문가(프로그램)가 도커다.
- 컨테이너에 필요한 프로그램, 실행할 코드, 개발용 SDK, 라이브러리, OS 등이 모두 들어간다. Dockerfile에 이러한 내용들을 넣고 빌드하면 된다.
- 이 컨테이너 째로 배포도 가능하다.
- 이 위에서 내 코드를 안정적으로 실행해 준다.
도커 컨테이너를 내가 직접 만들어 본 건 아니지만, 어떤 로컬 세팅 없이도 docker-compose start 명령어만으로 서버 실행이 가능하니 좋았다. 이전에 Java Dropwizard로 만들어진 서버를 로컬에서 도커 없이 실행해야 했을 때 세팅에만 며칠이 걸리고 백엔드 팀원들을 이곳저곳 만나러 다닐 때를 생각하면 불필요하게 낭비된 시간이 없었다는 느낌이다.
쿠버네티스
- 서버가 여러 개일 때, 도커가 설치 된 여러 개의 서버를 관리해주는 오케스트레이션 도구다.