Cài đặt PostgreSQL server sử dụng Docker

Để cài đặt PostgreSQL với Docker, các bạn có 2 lựa chọn, hoặc là sử dụng Docker Command hoặc là sử dụng Docker Compose. Trong bài viết này, mình hướng dẫn các bạn cả 2 lựa chọn này để cài đặt PostgreSQL server sử dụng Docker các bạn nhé!

Sử dụng Docker Command

Chúng ta sẽ sử dụng command docker run để chạy một Docker Image của PostgreSQL trên Docker Hub https://hub.docker.com/_/postgres như sau:

Trong đó:

  • — name <container_name> là tên Docker container mà các bạn muốn đặt cho container của PostgreSQL server.
  • -e POSTGRES_USER=<postgre_user> khai báo biến môi trường POSTGRES_USER, là tên user mà chúng ta sẽ sử dụng để đăng nhập vào PostgreSQL service. Tham số này là optional, nếu các bạn không khai báo thì mặc định, user với username “postgres” sẽ được sử dụng.
  • -e POSTGRES_PASSWORD=<postgre_password> là mật khẩu để đăng nhập với username ở trên. Tham số này là bắt buộc các bạn nhé!
  • -p 5432:5432 là tham số giúp chúng ta expose port 5432 của PostgreSQL ra bên ngoài container để các ứng dụng có thể connect tới PostgreSQL server.
  • -v <mount_folder>:/var/lib/postgresql/data giúp chúng ta mount một thư mục trên máy cài Docker với thư mục /var/lib/postgresql/data của PostgreSQL server trong Docker container, giúp chúng ta có thể synchronize data của PostgreSQL server trong container lên máy cài Docker, phòng trường hợp Docker Container của chúng ta có vấn đề gì, có thể chạy lại mà không mất dữ liệu.
  • -d là tham số giúp chúng ta chạy câu lệnh trong background, giúp chúng ta có thể tiếp tục container khi tắt Terminal hoặc Ctrl+C.
  • postgres:<tag> là tag Docker Image của PostgreSQL server mà các bạn muốn chạy.

Các bạn có thể định nghĩa thêm biến môi trường POSTGRES_DB để định nghĩa tên database mặc định sẽ được tạo khi container chạy. Mặc định, tên database này sẽ có giá trị giống với tên của user đăng nhập.

Ví dụ mình chạy command như sau:

Kết quả như sau:

Cài đặt PostgreSQL server sử dụng Docker

Kiểm tra Docker container đang chạy, các bạn sẽ thấy kết quả như sau:

Cài đặt PostgreSQL server sử dụng Docker

Sử dụng Docker Compose

Convert Docker command trên thành tập tin docker-compose.yaml, các bạn sẽ có kết quả như mình như sau:

Ở đây mình expose port 5431 ra bên ngoài container vì trên máy mình đã sử dụng port 5432 thôi nha các bạn! Các bạn có thể sử dụng port mà mình mong muốn.

Chạy command “docker compose up” trong thư mục chứa tập tin docker-compose.yaml với nội dung như trên, các bạn sẽ thấy kết quả như sau:

Bây giờ thì các bạn có thể sử dụng pgAdmin hoặc một PostgreSQL client tool nào đó để kết nối tới PostgreSQL server này và sử dụng rồi.

Add Comment