본문 바로가기
DevOps/Docker

[Docker] Docker란? 도커를 쓰는 이유

by ryuneng 2025. 1. 25.
반응형

❓ Docker란?

  • Go언어로 작성된 리눅스 컨테이너 기반가상화 시스템
  • 컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴

🧐 Docker를 쓰는 이유

  • 이식성 - 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성
  • 쉽게 말해 저 컴퓨터에서는 되고, 내 컴퓨터에서는 안되는 상황을 해결해준다.
  • 매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.
  • 항상 일관되게 프로그램을 설치할 수 있다. (버전, 환경 설정, 옵션, 운영 체제 등)
  • 각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 충돌이 발생하지 않는다.



💡 컨테이너(Container)란?

하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성해서, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념

  • 윈도우 환경에서 하나의 컴퓨터로 여러 사용자를 설정하여 사용할 수 있는 것과 비슷한 개념이다. 윈도우에서 각 사용자의 환경은 독립적으로 구성되어 있어서, 사용자마다 필요한 프로그램을 별도로 설치해주어야 한다.

✅ 컨테이너의 독립성

  • 디스크 (저장 공간) : 각 컨테이너마다 각자의 저장 공간을 가지고 있다. 일반적으로 A 컨테이너 내부에서 B 컨테이너 내부에 있는 파일에 접근할 수 없다.
  • 네트워크 (IP, Port) : 각 컨테이너마다 고유의 네트워크를 가지고 있다. 컨테이너는 각자의 IP 주소를 가지고 있다.



💡 이미지(Image)란?

프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있는 것
즉, 프로그램을 실행하는 데 필요한 모든 것을 포함하고 있다.

  • 닌텐도 게임기에는 다양한 칩을 꽂아서 여러 게임을 즐길 수 있다.
    Docker에서 닌텐도의 칩과 같은 역할을 하는 개념이 이미지(Image)이다.
  • 예를 들어, MySQL 서버를 이미지로 만들면 이 이미지를 Docker로 실행시키는 순간 MySQL 서버가 컨테이너 환경에서 실행된다.
    MySQL을 설치하지 않고도 MySQL 데이터베이스를 사용할 수 있게 된다.



References

 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Docker-Docker란-도커를-쓰는-이유