[Docker] 도커란 무엇인가? #Container #Linux의_Container기술

2025. 3. 10. 14:26·BEYOND SW [4] DevOps

 

🤓도커 첫걸음✏️

도커를 공부한 첫날의 내용을 개념과 실습으로 나누어 정리해볼 것이다.

이번 글은 개념 편이다!! 실습편 링크 🔗 NGINX 프론트엔드 배포, OpenJDK 백엔드 실행 컨테이너

목차

1. 도커란 무엇인가
2. 가상 머신과 컨테이너의 차이
3. 컨테이너의 특성과 주의사항
4. Volume의 개념

1. 도커란 무엇인가

🐋도커(Docker)는 컨테이너(Container) 기반의 가상화 기술이다. 컨테이너는 리눅스 Linux 의 기능(혹은 기술)으로 데이터 또는 프로그램을 격리시키는 기능을 제공한다. 다른 말로 "내가 실행시킬 프로그램을 격리시킨 상태로 만들어준다." 그리고 이는 개발 환경을 손쉽게 구축하고 배포할 수 있도록 한다.

 

더보기

🎃 여담 -----------

리눅스의 컨테이너 격리 기능은 모든 것을 다 격리 시켜준다..

☑️프로세스 격리, ☑️디렉터리 격리‼️ 하나의 다른 공간처럼 만들지만 OS는 공유하는 형태이다.

🧐격리하는 이유❓ⓐ 자원효율 ⓑ 보안

 

🎃 또다른 여담--

🧐 그래도 가상머신이 필요한 경우❓ 리눅스가 아닌 운영체제 환경도 있기 때문...

더 알아보려면... #VDI 가상데스크톱환경 개념 참고하기

 

 

🐋도커는 이러한 리눅스의 컨테이너 기술을 귀찮은 과정을 생략하고 편안하게 사용할 수 있도록 하고 인터페이스를 제공하기 때문에 인기가 많다. 그리하여 도커 외에도 CRI-O, containerd와 같은 컨테이너 런타임이 존재하지만, 도커는 가장 널리 사용된다.

 

⚓쿠버네티스(Kubernetes)는 이러한 컨테이너들을 관리해주는 오케스트레이션(orchestration) 도구로, 실제 서비스 운영 환경에서 사용된다. 한편 2020년에 ⚓쿠버네티스는🐋도커만의 표준으로 인한 불편,부작용을 문제삼아 도커 지원 중단하겠다는 발표를 하여 (아마도) 혼란한 상황이다... ㅋㅋ


2. 가상 머신과 컨테이너의 차이

  • 가상 머신(VM)은 하이퍼바이저 위에 게스트 OS가 올라가고, 그 위에 애플리케이션이 실행된다.
  • 반면, 컨테이너는 호스트 OS 커널을 공유하고, 그 위에 독립적인 애플리케이션이 올라간다.
🫱🏻그렇기 때문에 자연히 가상머신보다 자원을 더 적게 사용해도 되고, 가상머신보다 빠르며, 부하가 적고, 유연하다.
구분 가상 머신 컨테이너
OS 각각의 서버에 게스트 OS 필요 각자의 컨테이너가 하나의 호스트 OS 공유
속도 무겁고 느림 가볍고 빠름
자원 사용 더 많이 필요 더 적음

 

 

💡 참고

도커 컨테이너는 기본적으로 리눅스 기반이므로, 윈도우에서 도커를 실행하더라도 리눅스 가상 머신 위에서 동작한다.
Docker Desktop을 윈도우에서 실행할 경우에도 내부적으로는 리눅스 VM을 띄워서 컨테이너를 실행하므로, 윈도우 운영체제에서 에서 컨테이너를 사용할 수 있다고 착각하면 안 된다고 한다. 😅

 


3. 컨테이너의 특성과 주의사항

✅ 컨테이너는 한 번 쓰고 버리는 일회용품 프로그램이다.
쓰기 편하지만 필요에 따라 컨테이너를 무진장 늘렸다가 필요에 따라서 숫자를 무진장 줄일 수도 있다.

 

컨테이너 내부에서 생성한 🗂️데이터나 파일은 컨테이너가 삭제되면 모두 사라지기 때문에 💥💥

🗯️ 데이터를 지속적으로 보관해야 할 경우, Volume을 사용해야 한다. 4번에서 계속 설명..

 

✅ 컨테이너 환경은 매우 제한적이다.

  • 기본적인 명령어만 사용 가능하다.
    (예: curl 정도만 있고 vim 같은 편집기는 기본으로 없다. 필요한 경우 apt 명령어로 설치해야 한다.)
  • 프로세스 관련 명령어나 네트워크 설정 명령어도 제한적이다.

4. 볼륨(Volume)의 개념

도커 볼륨은 컨테이너 외부에 데이터를 저장하는 공간 (HDD)이다. 컨테이너가 삭제되어도 볼륨에 저장되는 데이터는 유지된다.
일종의 USB 드라이브처럼 생각하면 이해하기 쉽다. 특히 설정 파일이나 DB 데이터는 Volume을 사용해서 외부에서 관리하는 것이 일반적이다.

 

✔️ 내가 가진 파일(=로컬 개발 환경의 파일)을 컨테이너 안으로 연결하고 싶다면?
👉🏻docker run -v 옵션을 사용해서 호스트의 파일이나 폴더를 컨테이너 안으로 연결하면 된다.

 

'BEYOND SW [4] DevOps' 카테고리의 다른 글

[Docker] 2일차 - Dockerfile 작성부터 이미지 배포까지  (1) 2025.03.12
[Docker] 1일차 실습 - docker-compose.yml + 설정 문법  (0) 2025.03.12
[Docker] 🐋Docker run 명령어 + ⌨️주요 옵션들  (1) 2025.03.10
[Docker] 1일차 실습 - 프론트엔드(Vue.js), 백엔드(Spring Boot)  (2) 2025.03.10
[Docker] Windows11 에서 Docker Desktop 사용하기 (WSL update 오류 해결 방법)  (0) 2025.03.10
'BEYOND SW [4] DevOps' 카테고리의 다른 글
  • [Docker] 1일차 실습 - docker-compose.yml + 설정 문법
  • [Docker] 🐋Docker run 명령어 + ⌨️주요 옵션들
  • [Docker] 1일차 실습 - 프론트엔드(Vue.js), 백엔드(Spring Boot)
  • [Docker] Windows11 에서 Docker Desktop 사용하기 (WSL update 오류 해결 방법)
알파카1234
알파카1234
기대와는 다른 현실에 실망하고, 대신 생각지도 않던 어떤 것을 얻고, 그로 인해 인생의 행로가 미묘하게 달라지고, 한참의 세월을 지나 오래전에 겪은 멀미의 기억과 파장을 떠올리고, 그러다 문득 자신이 어떤 사람인지 조금 더 알게 되는 것. 생각해보면 나에게 여행은 언제나 그런 것이었다. - 김영하 『여행의 이유』 p. 51.
  • 알파카1234
    알파카 로그
    알파카1234
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (97)
      • BEYOND SW [1] 기반기술 (20)
        • 강의 메모 (2)
        • 리눅스 & 네트워크 (8)
        • SQL & DB (6)
        • 소프트웨어공학 아키텍처 (4)
      • BEYOND SW [2] 프론트엔드 (0)
        • HTML CSS (0)
      • BEYOND SW [3] 백엔드 (28)
      • BEYOND SW [4] DevOps (14)
      • BEYOND SW [5] 최종프로젝트 (4)
      • WEB front-end 개념정리 (4)
        • 웹 동작 원리와 개념 (0)
        • 웹퍼블리싱을 위한 HTML + CSS (2)
        • 웹퍼블리싱을 위한 Javascript (2)
      • 딥러닝 AI 공부 (4)
      • 2021-가을학기 (16)
        • 프로그래밍개론 (8)
        • 심리통계분석 I (8)
        • 데이터베이스설계와질의 (0)
      • 2024-봄학기 (0)
        • 프로그래밍언어론 (0)
        • 현대사회와심리학 (심리학개론) (0)
        • 현대사회와언어심리학 (언어심리학개론) (0)
      • 잡담 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    작문
    django db
    django 백엔드
    (wsl update 오류 해결 방법)
    명령프롬프트 장고 명령어
    Django
    도커 이미지 push
    도커 허브에 이미지 업로드
    db.sqlite3
    docker desktop 무한대기
    wsl update failed
    명령프롬프트 django 명령어
    파이썬
    ubuntu docker 설치 명령어
    django rest framework 객체 저장되는 곳
    도커 이미지 pull
    django 모델 객체가 저장되는 곳
    파이썬 접근제어자
    django rest framework 모델
    리눅스 도커 설치
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
알파카1234
[Docker] 도커란 무엇인가? #Container #Linux의_Container기술
상단으로

티스토리툴바