Bạn có thể chạy Postgres theo cách này (ánh xạ một cổng):
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
Vì vậy, bây giờ bạn đã ánh xạ cổng 5432 của vùng chứa với cổng 5432 của máy chủ. -p <host_port>:<container_port>
.Vì vậy, bây giờ bạn có thể truy cập postgres từ public-server-ip:5432
của bạn
Để kiểm tra:Chạy cơ sở dữ liệu postgres (lệnh ở trên)
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05b3a3471f6f postgres "/docker-entrypoint.s" 1 seconds ago Up 1 seconds 0.0.0.0:5432->5432/tcp some-postgres
Vào bên trong vùng chứa của bạn và tạo cơ sở dữ liệu:
docker exec -it 05b3a3471f6f bash
[email protected]:/# psql -U postgres
postgres-# CREATE DATABASE mytest;
postgres-# \q
Đi tới máy chủ cục bộ của bạn (nơi bạn có một số công cụ hoặc ứng dụng khách psql).
psql -h public-ip-server -p 5432 -U postgres
(mật khẩu mysecretpassword)
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
mytest | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres
Vì vậy, bạn đang truy cập cơ sở dữ liệu (đang chạy trong docker trên máy chủ) từ máy chủ cục bộ của mình.
Trong bài đăng này, nó được giải thích chi tiết.