[TIL] Docker

Soeng_dev·2024년 12월 2일

NAT (Network Address Translation)

Docker에서 컨테이너는 NAT를 사용하여 외부 네트워크와 통신.
NAT는 내부 네트워크의 여러 장치가 하나의 공용 IP를 통해 외부와 연결되도록 IP를 변환하는 기술.

Docker 호스트

Docker 호스트는 Docker 엔진이 실행되는 머신(물리적 또는 가상 환경).
컨테이너는 호스트 상에서 실행되며, 호스트는 네트워크나 볼륨 등을 관리.

포트 포워딩

호스트의 특정 포트를 컨테이너의 포트에 연결.
외부 클라이언트가 호스트의 포트를 통해 컨테이너에 접근 가능.
예: docker run -p 8080:80 nginx (호스트의 8080 → 컨테이너의 80)

Detached Mode (-d)

컨테이너를 백그라운드에서 실행, 터미널을 즉시 반환.
주로 장시간 실행되는 서비스(웹 서버 등)에 사용.
예: docker run -d nginx

Docker 볼륨

Docker 볼륨은 데이터를 지속적으로 보관하거나 여러 컨테이너 간에 공유할 때 사용된다. 컨테이너 재시작 시 데이터가 유지되며, 호스트 시스템과 분리되어 안전하게 관리된다.

사용 이유

데이터 지속성: 컨테이너 재시작 시 데이터 유지.
컨테이너 간 공유: 데이터 공유 및 읽기/쓰기 가능.
퍼포먼스: 파일 시스템 퍼포먼스 최적화.

볼륨 종류

익명 볼륨: 이름 없이 자동 생성, 명시적 관리 X.

docker run -v /container/data busybox

이름 있는 볼륨: 이름 지정, 재사용 가능.

docker volume create myvolume
docker run -v myvolume:/container/data busybox

바인드 마운트: 호스트 디렉토리와 연결.

docker run -v /host/path:/container/data busybox

Bitnami vs PostgreSQL 공식 이미지

PostgreSQL 공식 이미지:
경량화, 단순 PostgreSQL 제공.
초보자에게는 초기 설정이 까다로울 수 있음.
Bitnami 이미지:
사전 구성된 도구와 Kubernetes 친화적인 기능 포함.
확장 기능이 필요하거나 클라우드 환경에 적합.

비교 요약

특징PostgreSQL 공식 이미지Bitnami PostgreSQL 이미지
크기 및 성능작고 빠름더 크고 약간 느림
구성 및 유연성기본 제공, 직접 설정 필요사전 구성 옵션이 다양함
초보자 친화성낮음높음
확장 기능제한적확장 및 부가 기능 포함
Kubernetes 친화성일반적Helm 차트로 최적화됨
profile
Software Engineer

0개의 댓글