Docker Basic

y001·2025년 2월 15일
0
post-thumbnail

1. Docker의 주요 구성 요소

1.1 이미지 (Image)

Docker 이미지는 컨테이너를 생성하는 데 사용되는 읽기 전용 템플릿이다. 이미지에는 애플리케이션 실행에 필요한 파일과 설정이 포함되며, 운영체제 전체가 아닌 최소한의 환경만 포함되어 있어 가볍다.

  • 이미지는 읽기 전용이며 수정할 수 없다.
  • Docker Hub에서 공식 이미지 및 사용자 정의 이미지를 제공한다.
  • 로컬에서 직접 이미지를 제작할 수도 있으며, 없을 경우 원격 저장소에서 다운로드하여 사용할 수 있다.
  • 예제: docker pull ubuntu

1.2 컨테이너 (Container)

컨테이너는 이미지를 실행한 인스턴스이다. 독립적인 단위로 동작하며, 하나의 프로세스로 취급된다.

  • 컨테이너는 실행될 때 IP 주소를 할당받으며 독립적인 시스템처럼 동작한다.
  • 컨테이너 내부에서 변경된 사항은 원본 이미지에 영향을 미치지 않는다.
  • 예제: docker run -it ubuntu bash

1.3 Docker 네트워크 (Network)

Docker에서는 컨테이너 간 통신을 위해 네트워크를 여러 방식으로 구성할 수 있다.

  • 브리지 네트워크(Bridge Network): 기본적으로 컨테이너 간 통신을 가능하게 해주는 네트워크 유형이다. 동일한 브리지 네트워크에 있는 컨테이너끼리는 이름으로 접근할 수 있다.

    • 예제: docker network create my_bridge
    • docker run --network=my_bridge -it ubuntu bash
  • 호스트 네트워크(Host Network): 컨테이너가 호스트와 동일한 네트워크 환경을 공유하도록 한다. 컨테이너에서 실행되는 애플리케이션이 호스트의 IP를 그대로 사용하게 된다.

    • 예제: docker run --network=host -it ubuntu bash
  • 오버레이 네트워크(Overlay Network): 여러 개의 Docker 호스트(서버)를 연결하여 컨테이너 간 통신을 가능하게 해주는 네트워크 유형이다. Swarm 모드에서 사용된다.

1.4 볼륨 (Volume)

Docker 볼륨은 컨테이너의 데이터를 유지하는 데 사용된다.

  • 컨테이너가 삭제되어도 데이터를 유지할 수 있다.
  • 컨테이너와 호스트 간의 데이터 공유가 가능하다.
  • 예제: docker volume create myvolume

1.5 Docker 레지스트리 (Registry)

Docker 레지스트리는 컨테이너 이미지를 저장하는 공간이다.

  • 대표적인 Docker 레지스트리는 Docker Hub이다.
  • 기업 환경에서는 사설 레지스트리를 운영하기도 한다.
  • 예제: docker push myrepo/myimage

0개의 댓글