Docker

이진일·2026년 5월 6일
post-thumbnail

💡Docker란 무엇인가?

Docker는 애플리케이션을 컨테이너라는 가볍고 이식성 있는 패키지로 실행할 수 있게 돕는 플랫폼입니다. 실행에 필요한 라이브러리, 설정, 코드를 하나로 묶어 어디서든 동일한 환경을 보장합니다.

✅ 주요 특징

📦 컨테이너화: 필요한 모든 것을 하나로 묶어 어디서든 즉시 실행

⚡ 경량화: 호스트 OS 커널을 공유하여 VM보다 훨씬 빠르고 가벼움

🌍 이식성: 내 컴퓨터에서 되던 게 서버에서도 똑같이 동작

📈 확장성: 여러 컨테이너를 효율적으로 관리하고 손쉽게 늘릴 수 있음

🏠 가상 머신(VM) vs Docker, 뭐가 다를까?

가장 큰 차이는 '무게감'과 '격리 방식'입니다.

쉽게 비유하자면?

  • 가상 머신(VM): 지정된 땅 위에 독립된 집을 새로 짓는 것 (느리고 무거움)

  • Docker: 이미 지어진 집의 방 한 칸을 빌려 쓰는 것 (빠르고 효율적임)

VM은 지정된 땅(하드웨어) 안에서 여러 채의 독립된 집을 나눠서 짓는 것이라면, Docker는 이미 지어진 집의 방 한 칸을 빌려 쓰는 것이라고 할 수 있습니다.

💡 요약: 나에게 맞는 가상화 기술 선택하기

구분가상 머신 (VM)도커 (Docker)
핵심 가치완벽한 격리와 보안효율성과 빠른 속도
추천 상황보안 중시 시스템, 독립된 OS 환경 필수 시빠른 배포, MSA, 개발 환경 통일 필요 시
한 줄 결론철저한 리소스 분리가 우선이라면 VM서비스의 성능과 확장성이 우선이라면 Docker

정리하자면:
가상 머신은 독립적인 OS를 포함해 완벽한 격리가 필요한 보안 중시 환경에 적합하며, 도커는 호스트 OS의 커널을 공유하여 가볍고 빠른 배포와 확장이 필요한 개발 환경 일치화에 유리합니다.

🔑 Docker의 주요 키워드

  • 이미지 (Image): 컨테이너의 청사진. 실행에 필요한 모든 상태를 저장한 파일입니다.

  • 컨테이너 (Container): 이미지를 실행시킨 상태. 격리된 공간에서 앱이 돌아가는 실체입니다.

  • Dockerfile: 이미지를 만들기 위한 레시피(스크립트)입니다.

  • Docker Hub: 전 세계 사람들과 이미지를 공유하는 도서관(저장소)입니다.

  • 볼륨 (Volume): 컨테이너가 사라져도 데이터를 남기기 위한 외장 하드 같은 저장 공간입니다.

  • 네트워크 (Network): 컨테이너끼리 서로 대화(통신)할 수 있게 연결해주는 통로입니다.

📝 핵심 도커 명령어 정리

자주 쓰이는 명령어들을 이미지와 컨테이너로 나누어 정리했습니다.

🖼️ 도커 이미지 (Image) 관련

이미지를 내려받고 확인하고 삭제하는 명령어입니다.

명령어설명
docker build -t [이미지명:태그] . 이미지 제작: 현재 경로의 Dockerfile 빌드
docker pull [이미지명]이미지 다운: 레지스트리에서 가져오기
docker images목록 확인: 내 컴퓨터의 이미지들 보기
docker rmi [이미지ID/명]이미지 삭제: 설계도 파일 제거

📦 도커 컨테이너 (Container) 관련

이미지를 실행하여 컨테이너를 만들고 관리하는 명령어입니다.

명령어설명
docker run [옵션] [이미지명]실행: 컨테이너 생성 및 즉시 시작
docker exec -it [컨테이너ID] /bin/bash내부 접속: 실행 중인 컨테이너 안으로 들어가기
docker ps상태 확인: 실행 중인 컨테이너 보기 (-a는 전체)
docker stop [컨테이너ID/명]중지: 실행 중인 프로세스 멈추기
docker rm [컨테이너ID/명]삭제: 컨테이너 완전히 제거하기

💡 Tip:
컨테이너 ID는 abcdef123456 처럼 길지만, 다 칠 필요 없이 앞의 3~4자리(abc)만 입력해도 중복되지 않는다면 도커가 똑똑하게 알아듣습니다!

0개의 댓글