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:
Ví dụ:
Kiểm tra Docker Compose:
docker compose version
Bước 2: Tạo thư mục dự án
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
Sử dụng PostgreSQL phiên bản 17.
User
Tên tài khoản đăng nhập.
Password
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
Sau đó:
Ví dụ:
Tạo Database mới
Liệt kê database:
Chọn Database
Tạo bảng
id SERIAL PRIMARY KEY,
name VARCHAR(100),
price NUMERIC
);
Thêm dữ liệu
VALUES
('MacBook Pro', 55000000),
('iPhone 17', 32000000);
Xem dữ liệu
Thoát PostgreSQL
Dừng Container
Khởi động lại
Xóa Container
Dữ liệu vẫn còn vì đã sử dụng Volume.
Xóa cả dữ liệu
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:
Mở trình duyệt:
Đă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:
Xem tất cả container:
Xem log:
Khởi động:
Dừng:
Khởi động lại:
Truy cập shell:
Chúc các bạn thành công.