Docker란?

Docker는 애플리케이션을 컨테이너화하여 쉽게 배포하고 실행할 수 있게 해주는 플랫폼입니다. 컨테이너는 애플리케이션과 그 실행에 필요한 모든 것(라이브러리, 시스템 도구, 코드, 런타임 등)을 포함하는 독립적인 실행 환경입니다.

Docker: Accelerated Container Application Development

<aside> 💡

도커 쉬운 설명

🐳 도커(Docker)란?

📦 도커는 “앱을 택배 상자에 담아서 보내는 것”

• 우리가 어떤 물건을 다른 사람에게 보내려고 할 때, 상자에 다 담아서 택배로 보내죠?

• 상자 안에는 물건만 있는 게 아니라, 설명서나 충전기 같은 함께 필요한 것들도 다 넣어두죠.

• 그래서 받는 사람은 상자만 열면 바로 사용할 수 있게 되는 것이에요.

도커도 똑같아요.

• 앱을 실행하려면 이것저것 설치하고 설정해야 하는데, 도커는 그런 걸 다 알아서 상자(컨테이너)에 담아줍니다.

• 그래서 다른 사람이 받아도 바로 실행 가능해요.

🤔 왜 필요한가요?

• “내 컴퓨터에선 되는데, 너 컴에선 왜 안 되냐?” → 도커 쓰면 그런 일 없음

• 서버에 앱 배포할 때도, 상자째로 보내니까 편하고 빠름

• 데이터베이스, 백엔드, 프론트엔드 같은 거 동시에 여러 개도 한 번에 띄울 수 있음

🛠️ 실제로는 이런 느낌

docker run postgres

이 명령어 하나로 PostgreSQL 데이터베이스 서버가 뚝딱 설치되고 실행돼요.

설치 파일 다운받고 환경 설정하는 과정은 전혀 필요 없어요.

</aside>

1. Docker 설치하기

운영체제에 따라 Docker Desktop을 설치할 수 있습니다:

설치가 완료되면 터미널에서 다음 명령어로 Docker가 정상적으로 설치되었는지 확인할 수 있습니다:

docker --version
docker-compose --version

2. Docker Compose 이해하기

Docker Compose는 여러 컨테이너를 정의하고 실행하기 위한 도구입니다. YAML 파일을 통해 서비스, 네트워크, 볼륨 등을 설정할 수 있습니다.

3. PostgreSQL Docker Compose 파일 작성하기

프로젝트 root 디렉토리에 docker-compose.yml 파일을 생성하고 다음 내용을 작성합니다:

version: '3.8'
services:
  db:
    image: postgres:15
    container_name: test-db
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: testtest
      POSTGRES_DB: testdb
    volumes:
      - test_db_data:/var/lib/postgresql/data

volumes:
  test_db_data:

각 설정 항목 설명: