[Supinfo][Docker] Labs 2.2 - 도커로 PostgreSQL 컨테이너 설치하고 Node.js로 연동하기

박현아·2025년 11월 28일

SUPINFO

목록 보기
6/10

1. Docker Hub에서 PostgreSQL 공식 이미지 pull 하기


"postgres" 라고 검색해야 나온다

2. 받은 postgres 이미지 Run해서 postgres 컨테이너 실행하기

  • 컨테이너 이름 : postgresql-db
  • 포트 : 5432
  • 비밀번호 지정
docker run --name postgresql-db -e POSTGRES_USER=hyunahpark -e POSTGRES_PASSWORD=pw57
63 -e POSTGRES_DB=my-postgres-db -p 5432:5432 -d postgres:latest
  • --name postgresql-db : 컨테이너 이름
  • -e POSTGRES_PASSWORD=비밀번호넣기 : postgres 사용자 비밀번호 설정
  • -p 5432:5432 : 호스트 ↔ 컨테이너 포트 매핑
  • -d : 백그라운드 실행

3. JavaScript(Node.js)로 PostgreSQL 연결하기

1) 프로젝트 폴더 만들기 (VS Code 사용)

lab2.2-postgres

2) pg 패키지 설치

npm install pg

3) index.js 파일 생성, 작성하기

테이블 생성, 데이터 삽입, 데이터 조회 기능

// container : postgresql-db

const { Client } = require('pg');

// 주의할 점 : 2번에서 docker run할 때 설정했던 정보대로 넣어줘야 접속이 된다 (user, password, db)
const client = new Client({
  user: 'hyunahpark',
  host: '127.0.0.1',  // 여기서 로컬 PC의 Docker 포트로 연결
  database: 'my-postgres-db',
  password: 'pw5763',
  port: 5432
});

async function main() {
  try {
    await client.connect();
    console.log('PostgreSQL 연결 성공');

     // 1️⃣ 테이블 생성
    await client.query(`
      CREATE TABLE IF NOT EXISTS users (
        id SERIAL PRIMARY KEY,
        name VARCHAR(50) UNIQUE,
        age INT
      );
    `);
    console.log('테이블 생성 완료');

    // 2️⃣ 데이터 삽입
    await client.query(`
      INSERT INTO users (name, age) VALUES
      ('Alice', 25),
      ('Bob', 30)
      ON CONFLICT DO NOTHING;
    `);

    console.log('데이터 삽입 완료');

    // 3️⃣ 데이터 조회
    const res = await client.query('SELECT * FROM users;');
    console.log('조회 결과:', res.rows);

  } catch (err) {
    console.error('연결 오류:', err);
  } finally {
    await client.end();
  }
}

main();

4) VS Code에서 index.js 실행

node index.js

5) 결과

PostgreSQL 연결 성공
테이블 생성 완료
데이터 삽입 완료
조회 결과: [ { id: 1, name: 'Alice', age: 25 }, { id: 2, name: 'Bob', age: 30 } ]

+ 터미널에서 데이터베이스 직접 접속하는 방법

docker exec -it postgresql-db psql -U hyunahpark -d my-postgres-db
  • docker "postgresql-db" 컨테이너 안에서
  • psql 실행
  • "hyunahpark" 사용자로
  • "my-postgres-db" DB에 접속

C:\Users\hyuna\3DOKR\lab2.2-postgres>docker exec -it postgresql-db psql -U hyunahpark -d my-postgres-db
psql (18.1 (Debian 18.1-1.pgdg13+2))
Type "help" for help.

my-postgres-db=# select * from users
my-postgres-db-# ;
 id | name  | age 
----+-------+-----
  1 | Alice |  25
  2 | Bob   |  30
(2 rows)

+ VS Code에서 데이터베이스 테이블 보기

1) SQL Tools PostgreSQL 이라는 extension 다운로드 하기

2) Add connections
눌러서 db 이름, 사용자 이름, 포트 등 설정해주고 비밀번호 입력해주면 된다

3) 결과

이렇게 왼쪽 메뉴에 SQL Tools 메뉴가 생기는데 여기서 Table을 표로 볼 수 있다

0개의 댓글