본문 바로가기
Docker

도커 인 액션 3장

by xogns93 2024. 12. 4.

Docker 

 

1. Docker의 기본 개념

  • Docker 이미지: 컨테이너를 생성하기 위한 템플릿. 소프트웨어, 라이브러리, 설정 등을 포함.
  • Docker 컨테이너: 이미지를 기반으로 실행되는 독립적인 환경.
  • Docker 레지스트리: 이미지를 저장하고 배포하는 중앙 저장소(Docker Hub 등).
  • 이미지 레이어: 이미지의 구성 단위로, 읽기 전용이며 공유 가능.

2. 소프트웨어 설치 방식

  1. Docker 레지스트리 사용:
    • docker pull 명령어를 통해 이미지를 다운로드.
    • Docker Hub가 기본 레지스트리.
  2. 이미지 파일 사용:
    • docker save로 이미지를 저장하고 docker load로 로드.
  3. Dockerfile 빌드:
    • Dockerfile에 정의된 명령어로 이미지를 생성.
    • 예: docker build -t [이미지명] [디렉토리]

3. 태그와 리포지토리

  • 리포지토리: 관련된 이미지들의 모음(예: nginx 리포지토리).
  • 태그: 이미지 버전을 식별하는 레이블(예: nginx:latest).
  • 이름 형식: [레지스트리주소]/[사용자이름]/[리포지토리명]:[태그]

4. Docker 이미지와 레이어

  • 이미지는 여러 레이어로 구성되며, 레이어는 읽기 전용.
  • 공통 레이어는 공유되므로 저장 공간을 절약.
  • 컨테이너 실행 시 쓰기 가능한 레이어가 추가됨.

5. 컨테이너 격리

  • 유니온 파일 시스템(UFS): 여러 레이어를 하나의 파일 시스템으로 통합.
  • 네임스페이스(MNT): 각 컨테이너의 파일 시스템을 호스트와 독립적으로 관리.
  • chroot: 컨테이너 내부 파일 시스템을 격리.

6. Docker의 장점

  1. 효율성:
    • 레이어 재사용으로 대역폭과 저장 공간 절약.
    • 공통 레이어는 한 번만 다운로드.
  2. 이식성:
    • 동일한 이미지를 사용하여 어디서나 컨테이너 실행 가능.
  3. 격리와 보안:
    • 네임스페이스와 chroot를 통한 프로세스 및 파일 시스템 격리.
  4. 자동화:
    • Dockerfile과 CI/CD 파이프라인으로 빌드와 배포 자동화.

7. 주요 명령어

  1. 이미지 관련:
    • docker pull [이미지명]: 이미지 다운로드.
    • docker build -t [이미지명] [디렉토리]: Dockerfile로 이미지 빌드.
    • docker rmi [이미지명]: 이미지 삭제.
  2. 컨테이너 관련:
    • docker run [옵션] [이미지명]: 컨테이너 실행.
    • docker ps: 실행 중인 컨테이너 목록.
    • docker stop [컨테이너ID]: 컨테이너 중지.
    • docker rm [컨테이너ID]: 컨테이너 삭제.
  3. 파일 관련:
    • docker save [이미지명] -o [파일명]: 이미지를 파일로 저장.
    • docker load -i [파일명]: 파일에서 이미지 로드.

8. 레이어 기반 설계의 장점

  • 효율적인 이미지 관리:
    • 동일한 부모 이미지를 공유하여 저장 공간 절약.
  • 빠른 배포:
    • 필요한 레이어만 다운로드.
  • 유연성:
    • 사용자 요구에 맞춘 커스터마이징 가능.

9. Docker Hub

  • Docker의 기본 레지스트리 서비스.
  • 공개/비공개 리포지토리를 통해 이미지 공유 가능.
  • 공식 이미지와 커뮤니티 이미지 제공.

10. 최신 도커 생태계

  • Docker Compose: 여러 컨테이너를 정의하고 실행.
  • Kubernetes: 컨테이너 오케스트레이션 도구.
  • Docker Desktop: macOS, Windows에서 Docker 환경 제공.

결론: Docker는 효율적이고 이식성 높은 컨테이너 기술로, 현대적인 소프트웨어 개발과 배포의 핵심 도구로 자리 잡았습니다.

'Docker' 카테고리의 다른 글

도커 인 액션 2장  (0) 2024.12.04
도커 인 액션 1장  (0) 2024.12.04
ext4 (Extended Filesystem 4)  (1) 2024.12.04
Docker 레이어  (0) 2024.12.04
Root 파일 시스템(root filesystem)  (1) 2024.12.04