IT Tech/docker

Docker란 무엇인가? 사용하면 어떤 좋은 점이 있을까?

Developer JS 2024. 2. 25. 16:51
반응형

Docker의 존재를 알고는 있었는데, 지금 당장 중요한 건 다른 것이라는 판단으로 다른 것들을 조금 더 공부하고 있었습니다. 당연히 다른 공부를 하면서 배포를 하는 상황도 많았고, 그런 상황들마다 배포하는데 굉장히 많은 고생을 하기도 했습니다. 특히 서버에 설치 되어있는 언어나 라이브러리들이 아주 오래전에 설치되어있던 것들이라면 정말 고생해서 서버에 배포했었습니다.

 

그러던 중 Docker라는 걸 쓰면 배포하는데 조금 더 쉽게 할 수 있다는 이야기를 듣고, 너무 흥미로워서 공부를 하고, Docker를 통해 배포를 하는 방법에 대해서 공부해봤는데, 정말 편합니다! 물론 시스템의 자원을 그냥 쌩으로 배포할 때보다 조금 더 먹는 건 사실입니다. 그런데 내가 개발한 환경 그대로 서버의 설정 없이 그냥 배포할 수 있다? 이건 지나칠 수 없습니다!

 

Docker란 무엇일까요?

Docker는 개발자나 시스템 관리자가 어플리케이션을 빠르고 쉽게 배포할 수 있도록 설계된 오픈 소스 플랫폼입니다. Docker를 사용하면 어플리케이션을 소프트웨어 컨테이너 안에 포장하여, 어떤 환경에서도 동일하게 실행할 수 있습니다. 그럼 Docker의 핵심 개념과 장점에 대해서 알아보도록 하겠습니다.

 

728x90

 

1. Docker의 핵심 개념

  • 컨테이너(Container): 컨테이너는 어플리케이션과 그 어플리케이션이 실행되는데 필요한 모든 것(코드, 런타임, 시스템 도구, 시스템 라이브러리 등)을 포함하는 경량의 실행 가능한 소프트웨어 패키지입니다. 컨테이너는 소프트웨어를 시스템의 나머지 부분으로부터 격리시키며, 환경에 구애받지 않고 일괄된 방식으로 작동합니다.
  • 이미지(Image): Docker 이미지는 컨테이너 실행에 피룡한 코드, 런타임, 라이브러리, 환경 변수, 설정 파일 등을 포함하는 경량, 독립적, 실행 가능한 소프트웨어 패키지입니다. 이미지는 컨테이너를 생성하는 데 사용되며, 이미지를 한 번 생성 후에는 변경되지 않습니다(불변성). 변경이 필요한 경우에는 새 이미지를 생성해야 합니다.
  • 도커 허브(Docker Hub): Docker Hub는 Docker 이미지를 찾고, 공유하고, 관리할 수 있는 클라우드 기반의 서비스입니다. 개발자는 자신의 이미지를 Docker Hub에 업로드하여 다른 사람과 공유할 수 있으며, 다른 사람이 만든 이미지를 다운로드하여 사용할 수도 있습니다.

즉, 서버에 배포할 어플리케이션을 어플리케이션이 실행될 때 필요한 모든 것들을 이미지화 해서 그 이미지를 통해서 컨테이너를 만들어서 어플리케이션을 실행하는 시스템입니다. 이것으로 인해서 서버의 언어나 라이브러리 등에 간섭없이 어플리케이션을 실행할 수 있게됩니다.

 

백업과 복원도 너무 쉬워지고, 배포도 물론 너무 쉬워지게 됩니다.

 

반응형

2. Docker의 장점

  1. 이식성: Docker 컨테이너는 어디서든 실행할 수 있습니다. 개발 환경, 테스트 환경, 프로덕션 환경 등 환경에 상관없이 동일하게 작동합니다.
  2. 빠른 배포와 확장성: Docker를 사용하면 어플리케이션과 서비스를 빠르게 배포하고 확장할 수 있습니다. 컨테이너는 가벼우므로 시작시간이 매우 짧고, 리소스를 적게 사용합니다.
  3. 환경 일관성: Docker는 어플리케이션을 환경으로부터 격리시킵니다. 이는 개발, 테스트, 프로덕션 환경 간의 충돌을 방지하고, "내 컴퓨터에서는 작동하는데" 문제를 해결합니다.
  4. 높은 효율성과 자원 사용 최적화: 컨테이너는 가성 머신보다 훨씬 경량이며, 하나의 시스템에서 여러 컨테이너를 실행할 수 있어 자원을 효율적으로 사용할 수 있습니다.

간혹 서버의 환경때문에 어쩔 수 없이 서버에 가상 머신을 작동시키고, 그 가상 머신안에 어플리케이션을 구동하는 경우가 있습니다. Docker를 사용하면 가상머신을 구동하기 위해 들어가는 시스템의 자원들의 낭비를 막을 수 있고, 무엇보다 아주 편하게 서버에 배포할 수 있다는 큰 장점이 있습니다.

 

이걸 이제야 알았다니 너무나 가슴이 아픕니다. ㅠ

 

 

 

 

 

반응형