공유된 따라하기 · Docker

Docker 로 팀 공용 PostgreSQL 개발 DB 만들기

대상 docker run, docker ps, docker exec 명령은 알고, 팀원들이 함께 쓸 개발용 PostgreSQL 을 Docker 로 올리고 싶은 분

목표 Docker 컨테이너로 PostgreSQL 을 기동하고, ncafe 사용자로 ncafedb 에 접속해 테이블을 만들 수 있는 환경을 만듭니다

완성물 Docker 호스트 IP 로 접속 가능한 PostgreSQL 컨테이너, ncafe 사용자, ncafedb 데이터베이스, public 스키마의 products 테이블

준비물

  • Docker Desktop (Windows/Mac) 또는 Docker 가 설치된 리눅스 호스트
  • 로컬 개발용이라면 아무 준비물 없음
  • 운영서버용이라면: newlecture.com 클라우드 서버에 Docker 가 설치되어 있어야 함. 중요: 운영서버에 올릴 때는 포트 번호가 기존 서비스와 충돌하지 않도록 할당된 포트 번호를 뉴렉쌤에게 먼저 안내받아 사용해야 합니다. 이 글에서는 예시로 5432 포트를 사용하지만, 운영서버라면 안내받은 포트로 치환하세요.

STEP 1 / 10환경 확인 및 포트 번호 결정

0개 완료 · 10개 남음

  1. 로컬 개발용이든 운영서버용이든 Docker 로 PostgreSQL 을 올리는 방식은 동일합니다. 다만 운영서버는 네트워크 환경이 다르므로 포트 충돌을 방지하기 위해 사전에 할당된 포트를 확인해야 합니다.

    1-1. Docker 실행 상태 확인

    터미널에서 Docker 가 정상적으로 실행 중인지 확인합니다.

    docker info

    image

    1-2. 포트 번호 결정

    • 로컬 개발용: 5432 (PostgreSQL 기본 포트)
    • 운영서버용: 뉴렉쌤에게 안내받은 포트 번호를 사용하세요. (예: 5433, 6432 등)

    이 단계에서는 예시로 5432 를 사용합니다. 운영서버라면 아래 명령의 5432:5432 부분을 안내받은포트:5432 로 치환하세요.

    참고: 5432:5432 형식은 호스트포트:컨테이너포트 를 의미하며, 이는 일종의 포트 포워딩(포트 매핑)입니다.

    • 앞의 숫자 (호스트 포트): 외부(호스트)에서 접근할 때 사용하는 포트입니다.
    • 뒤의 숫자 (컨테이너 포트): 컨테이너 내부에서 PostgreSQL 이 실제로 경청(LISTEN)하는 포트입니다.

    따라서 5432:5432 는 "호스트의 5432 포트로 들어오는 요청을 컨테이너 내부의 5432 포트로 전달한다"는 뜻입니다.

    ✅ 확인

    • docker info 명령이 에러 없이 출력됩니다.
    • 사용할 포트 번호가 결정되었습니다.

    🎓 newlec 쌤의 코멘트

    Docker 컨테이너는 격리된 환경이지만, 네트워크는 호스트와 연결됩니다. 5432:5432 는 "호스트의 5432 포트를 컨테이너의 5432 포트에 연결"한다는 뜻입니다. 운영서버에는 이미 다른 서비스들이 포트들을 차지하고 있을 수 있으므로, 무작정 기본 포트를 쓰면 충돌이 납니다. 그래서 운영서버에는 반드시 사전에 할당된 포트를 받아서 사용해야 합니다. 로컬에서는 5432 가 가장 편합니다.

    ❌ 자주 하는 실수

    증상 원인 해결
    Cannot connect to the Docker daemon Docker Desktop 이 꺼져 있음 Docker Desktop 을 시작하고 docker info 재실행
    운영서버에서 포트 충돌 에러 기본 포트 5432 를 사용함 뉴렉쌤에게 할당된 포트를 확인하고 docker run 명령의 포트 부분을 치환

    📝 이 단계의 핵심

    • 로컬과 운영서버의 Docker 설치 방식은 동일합니다.
    • 운영서버는 포트 충돌 방지를 위해 사전에 할당된 포트를 사용해야 합니다.

이 주소는 글의 저작자가 공개한 링크입니다. 뉴렉처 스터디의 다른 자료는 로그인 후 볼 수 있어요.