Hướng dẫn cài đặt PostgreSQL bằng Docker trên macOS

Views: 5 11/07/2026 15:11
Hướng dẫn cài đặt PostgreSQL bằng Docker trên macOS

Nếu bạn đang phát triển ứng dụng với PostgreSQL trên macOS, việc cài đặt trực tiếp có thể gây xung đột phiên bản hoặc khó quản lý nhiều project khác nhau. Docker giúp bạn tạo môi trường PostgreSQL chỉ trong vài phút, dễ dàng khởi động, dừng hoặc xóa mà không ảnh hưởng đến hệ điều hành.

Trong bài viết này chúng ta sẽ cài đặt:

  • Docker Desktop

  • PostgreSQL Container

  • Docker Compose

  • pgAdmin (tùy chọn)

  • Kiểm tra kết nối

Yêu cầu

  • macOS Monterey trở lên

  • Docker Desktop

  • Terminal

Bước 1: Cài Docker Desktop

Nếu chưa cài Docker Desktop, hãy tải từ:

https://www.docker.com/products/docker-desktop/

Sau khi cài đặt, mở Docker Desktop và đảm bảo biểu tượng Docker hiển thị trạng thái Running.

Kiểm tra:

docker --version

Ví dụ:

Docker version 28.x.x

Kiểm tra Docker Compose:

docker compose version

Bước 2: Tạo thư mục dự án

mkdir postgres-docker
cd postgres-docker

Bước 3: Tạo file docker-compose.yml

services:
  postgres:
    image: postgres:17
    container_name: postgres17

    restart: always

    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: 123456
      POSTGRES_DB: mydatabase

    ports:
      - "5432:5432"

    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Giải thích

Image

image: postgres:17

Sử dụng PostgreSQL phiên bản 17.

User

POSTGRES_USER=admin

Tên tài khoản đăng nhập.

Password

POSTGRES_PASSWORD=123456

Mật khẩu.

Database

POSTGRES_DB=mydatabase

Database sẽ được tạo tự động.

Port

5432:5432

Map cổng PostgreSQL ra máy thật.

Volume

postgres_data

Giúp dữ liệu không mất khi xóa container.

Bước 4: Khởi động PostgreSQL

docker compose up -d

Kết quả:

Creating postgres17 ... done

Kiểm tra:

docker ps

Ví dụ:

CONTAINER ID
postgres17

Bước 5: Kiểm tra Log

docker logs postgres17

Nếu thành công sẽ thấy:

database system is ready to accept connections

Bước 6: Kết nối PostgreSQL

Có thể dùng:

  • DBeaver

  • TablePlus

  • DataGrip

  • pgAdmin

Thông tin kết nối:

Thuộc tính

Giá trị

Host

localhost

Port

5432

User

admin

Password

123456

Database

mydatabase

Bước 7: Truy cập PostgreSQL bằng Terminal

docker exec -it postgres17 psql -U admin

Sau đó:

SELECT version();

Ví dụ:

PostgreSQL 17.x

Tạo Database mới

CREATE DATABASE shopdb;

Liệt kê database:

\l

Chọn Database

\c shopdb

Tạo bảng

CREATE TABLE products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    price NUMERIC
);

Thêm dữ liệu

INSERT INTO products(name, price)
VALUES
('MacBook Pro', 55000000),
('iPhone 17', 32000000);

Xem dữ liệu

SELECT * FROM products;

Thoát PostgreSQL

\q

Dừng Container

docker compose stop

Khởi động lại

docker compose start

Xóa Container

docker compose down

Dữ liệu vẫn còn vì đã sử dụng Volume.

Xóa cả dữ liệu

docker compose down -v

Lệnh này sẽ xóa toàn bộ database.

Cài pgAdmin bằng Docker (tùy chọn)

Thêm vào docker-compose.yml

pgadmin:
    image: dpage/pgadmin4
    container_name: pgadmin4

    restart: always

    environment:
      PGADMIN_DEFAULT_EMAIL: admin@example.com
      PGADMIN_DEFAULT_PASSWORD: admin123

    ports:
      - "5050:80"

    depends_on:
      - postgres

Khởi động lại:

docker compose up -d

Mở trình duyệt:

http://localhost:5050

Đăng nhập:

Email:
admin@example.com

Password:
admin123

Thêm Server:

Host:
postgres

Port:
5432

Username:
admin

Password:
123456

Lưu ý: Khi pgAdmin chạy trong cùng mạng Docker Compose, hãy sử dụng tên service (postgres) làm Host thay vì localhost.

Một số lệnh Docker hữu ích

Xem container:

docker ps

Xem tất cả container:

docker ps -a

Xem log:

docker logs postgres17

Khởi động:

docker start postgres17

Dừng:

docker stop postgres17

Khởi động lại:

docker restart postgres17

Truy cập shell:

docker exec -it postgres17 bash

Chúc các bạn thành công.

 

postgresql docker macos cài đặt postgresql docker mac docker postgres mac postgresql docker compose docker desktop macos postgres macbook cài postgresql trên mac postgres docker tutorial docker compose postgres pgadmin docker